@property 那些总结
来源:互联网 发布:彩票网络与实体店结合 编辑:程序博客网 时间:2024/05/29 14:46
@property中有哪些属性关键字?/ @property 后面可以有哪些修饰符?
属性可以拥有的特质分为四类:
原子性---
nonatomic
特质在默认情况下,由编译器合成的方法会通过锁定机制确保其原子性(atomicity)。如果属性具备nonatomic特质,则不使用同步锁。请注意,尽管没有名为“atomic”的特质(如果某属性不具备nonatomic特质,那它就是“原子的” ( atomic) ),但是仍然可以在属性特质中写明这一点,编译器不会报错。若是自己定义存取方法,那么就应该遵从与属性特质相符的原子性。
读/写权限---
readwrite(读写)
、readonly (只读)
- 内存管理语义---
assign
、strong
、weak
、unsafe_unretained
、copy
方法名---
getter=<name>
、setter=<name>
getter=<name>
的样式:@property (nonatomic, getter=isOn) BOOL on;
(
setter=<name>
这种不常用,也不推荐使用。故不在这里给出写法。)- 不常用的:
nonnull
,null_resettable
,nullable
copy: 建立一个索引计数为1的对象,然后释放旧对象。对NSString
retain:释放旧的对象,将旧对象的值赋予输入对象,再提高输入对象的索引计数为1 ,对其他NSObject和其子类
weak 和strong的区别:weak和strong不同的是 当一个对象不再有strong类型的指针指向它的时候 它会被释放 ,即使还有weak型指针指向它。一旦最后一个strong型指针离去 ,这个对象将被释放,所有剩余的weak型指针都将被清除。
copy与retain:
copy其实是建立了一个相同的对象,而retain不是.
copy是内容拷贝,retain是指针拷贝.
copy是内容的拷贝 ,对于像NSString,的确是这样,如果拷贝的是 NSArray这时只是copy了指向array中相对应元素的指针.这便是所谓的"浅复制".
atomic是Objc使用的一种线程保护技术,基本上来讲,是防止在写未完成的时候被另外一个线程读取,造成数据错误。而这种机制是耗费系统资源的,所以在iPhone这种小型设备上,如果没有使用多线程间的通讯编程,那么nonatomic是一个非常好的选择。
__block和__weak修饰符的区别:
__block不管是ARC还是MRC模式下都可以使用,可以修饰对象,还可以修饰基本数据类型。__weak只能在ARC模式下使用,也只能修饰对象(NSString),不能修饰基本数据类型(int)。
__block对象可以在block中被重新赋值,__weak不可以。
0 0
- @property 那些总结
- @property 那些事
- @property总结
- ant property 总结
- self,@property用法总结
- ant property总结
- iOS ARC Property 总结
- 【ant】ant property 总结
- property属性总结
- Property Animation要点总结
- ant property 总结
- 总结@property参数
- @property,autorelease 知识点总结
- 总结@property关键字
- Property动画总结
- OC学习那些事:@property和@synthesize
- mmap那些事之android property实现
- mmap那些事之android property实现
- php读写json文件
- Eclipse中把项目转成web项目
- SQL— CONCAT(字符串连接函数)
- MongoDB副本集(三)
- Mac环境下svn的使用
- @property 那些总结
- cannot mount database in EXCLUSIVE mode .
- 克隆图
- iOS 开发笔记(一)
- JavaMail邮件发送-发送一个文本邮件和一些问题说明
- 英语翻译之路-1-20150915
- WEB应用中context上下文的简单理解
- javac不是内部命名
- Oracle使用——PLSQL的中文乱码显示全是问号