Objective-C学习笔记-属性

1.属性的存取特性

  • readwrite,自动创建存取方法,默认特性
  • readonly,只创建取方法

2.属性的多线程特性

  • atomic,使用锁机制确保对该属性的操作的原子性,默认特性
  • nonatomic,无原子性,所以速度会快一点,建议使用的特性

3.属性的引用相关特性

  • strong,在进行存操作时,会持有传进来的对象,放弃原有对象,默认特性
  • weak,在进行存操作时,不持有传进来的对象,当该对象被释放时,自动赋为nil
  • unsafe_unretained,与weak类似,只是对象被释放后,不会自动赋为nil

4.属性的拷贝特性

  • assign,在进行存操作时,直接赋值为传进来的变量,默认特性
  • copy,在进行存操作时,拷贝传入的对象,该对象必须实现NSCopying协议的copyWithZone:方法,OC框架中,不可修改的对象一般仅仅返回self,并不会发生拷贝,因为对不可修改的对象进行复制没有必要,而对于可修改对象,一般会返回对应的不可修改对象,例如NSMutableString与NSString

5.属性虽然帮我们完成了存取方法,但是我们也可以手动实现存取方法来覆盖自动生成的存取方法,例如想要在存操作的时候更新下界面。但是这种情况下我们必须通过@synthesize创建实例变量(下划线开头的,原本会自动生成的成员变量)

#import "TestClass.h"

@interface TestClass()

@property (nonatomic) NSString * name;

@end

@implementation TestClass

//合成实例变量
@synthesize name=_name;

-(NSString*)name
{
    return _name;
}

-(void) setName:(NSString *)name
{
    _name=name;
    //更新界面
}

@end
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容