iOS 属性
几乎所有的属性都用nonatomic,因为atomic影响性能,且并不能保证性能安全,若要性能安全需要更深层的锁定机制才行ios开发过程中一般都是用nonatomic属性,但是MAC OSX开发过程中使用atomic属性通常不会有性能瓶颈。
@property的本质是什么,ivar setter getter是如何生成并添加到这个类中的?
@property = ivar + setter + getter.
属性的作用就是封装类中的数据。
oc对象通常把它所需要的数据保存为实例变量,实例变量通常通过存取方法访问;getter方法用于读取变量,setter方法用于写入变量;
在oc中属性有着严格的命名规范所以oc才能根据名称自动创建出存取方法。
ivar setter getter是如何生成并添加到着这个类中的?
完成属性定义后,编译器在编译期会自动编写访问这些属性所需要的方法,除了这些,编译器还自动向类中添加适当类型的实例变量,并且在属性名前加上下划线以此作为实例变量的名字。