`
jsntghf
  • 浏览: 2481918 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

属性的定义

    博客分类:
  • iOS
阅读更多

@property (copy, nonatomic) NSString *title;

 

assign、copy、retain之间的区别

 

assign:简单赋值,不更改索引计数
copy:建立一个索引计数为1的对象,然后释放旧对象
retain:释放旧的对象,将旧对象的值赋予输入对象,再提高输入对象的索引计数为1

 

retain的实际语法为:

 

- (void)setName:(NSString *)newName {
    if (name != newName) {
       [name release];
       name = [newName retain];       
    }
}

 

如果你不清楚怎么使用他们,那么就这样:

 

使用assign:对基础数据类型(NSInteger、CGFloat)和C数据类型(int、float、double、char等)
使用copy:对NSString
使用retain:对其他NSObject和其子类
使用nonatomic:atomic是Objective-C使用的一种线程保护技术,为防止在写未完成时被另外一个线程读取,造成数据错误。而这种机制是耗费系统资源的,所以在iPhone这种小型设备上,如果没有使用多线程间的通讯编程,那么nonatomic是一个非常好的选择。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics