首页 > 代码库 > 黑马程序员-OC内存管理 @property的增强
黑马程序员-OC内存管理 @property的增强
涉及到内存管理,只读,多线程等很多功能时,setter和getter方法也就没那么简单了;当然@property依然强大,很好用;
1:内存管理相关参数:
*:retain: (如果是oc对象类型),生成的setter会自动release旧值,retain新值;
*:assign:(适用于非oc对象) 这个是默认的值
*:copy:release旧值,copy新值;
@property (retain) NSString *name; // 同类型的参数不能同时写 // @property (retain, assign) NSString *name; // 错误写法 // 但是不同类型的可以写一起 @property (retain, readonly) NSString *name;
2:是否生成setter
*:readwrite :同时生成getter和setter 这是默认情况;
*:readonly:只读,只生成getter;
3:多线程管理
*:nonatomic:一般用这个,不加锁的;
*:atomic:(默认)性能低,加锁的;
4:制定setter和getter的方法名:
格式:如果要给setter方法制定方法名一定要加“:”(冒号) @property (setter = abc :) int age;
getter方法就不用了;也可以同时制定;
一般开发中getter方法有时返回的时bool型,一般方法名会制定,以is开头;比如:isRich;
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。