iOS 关于property,selector,strong,copy,__unused的一点认识

1.nonatomic标示非原子属性,很多人只知道它的效率较高,却不知道其含义,其含义是非线程安全的,也就是说多线程修改时不加锁,可能出现多个线程先后修改而出现数据不准确的情况。

2.unsafe_unretained和assign的作用是一致的,如果对象数据也采用这种方式,这个property就只是指向数据的指针而已,这样说来,似乎assign和weak是一样的,但他们有个很大的区别,在下一条中说明。

3.weak也只是指向数据而不retain,但是当weak指针指向的数据释放后,weak指针自动变为nil,而assign的不会。

4.copy和strong作用一致,但是系统会以拷贝的方式来生成新对象,copy常用于NSString等对象,注意要实现copy必须遵循NSCopying或者NSMutableCopying协议。

5.我们定义了变量后,如果不使用就会出现警告,如果在变量前加__unused前缀,就可以免除警告。其原理是告诉编译器,如果变量未使用就不参与编译。

6.对于协议中的变量和方法,默认是@required,并且对于变量,必须要重新用property定义。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • __block和__weak修饰符的区别其实是挺明显的:1.__block不管是ARC还是MRC模式下都可以使用,...
    LZM轮回阅读 3,374评论 0 6
  • 文/刘平 最近,所在的小城总是被雨水笼罩着。到处都是湿湿的,每天都会伴着雨水过生活!长期下来,人也会很烦躁! 可是...
    墨攻贡米阅读 162评论 0 0
  • 【经典名句分享】 光鲜的背后,从来没有绝对的顺遂。不可能每个人上来就是人生赢家,但也大可不必自怨自艾继而一输到底。...
    玉_莲子阅读 161评论 0 0
  • 之前就一直听得姐说体脂秤其实称的并不准确,而且自己也知道他确实是不准确。但是从来都不知道他是为什么不准确的。直到今...
    自控力二静阅读 638评论 0 0
  • 我虽是个小人物,但却不愿平庸的生活。每天抱着书来回奔波在路上,听自己喜欢的歌,走自己的路。在平淡的生活和婆娑的...
    小艾YI阅读 214评论 0 1