码迷,mamicode.com
首页 > 移动开发 > 详细

iOS开发-面试总结(十三)

时间:2016-07-02 11:37:55      阅读:187      评论:0      收藏:0      [点我收藏+]

标签:

关于不同属性策略对应的setter和getter方法

 

如果将synthesize省略,并且我们自己实现setter和getter方法时,系统就不会生成对应的setter和getter方法,还有实例变量

1,当把语义特性声明为assign时,setter和getter时方法内部实现

1 - (void)setName:(NSString *)name{
2 _name = name;
3 }
4 - (NSString *)name{
5 return _name;
6 }


2,当把语义特性声明为retain时,setter和getter方法内部实现

技术分享
1 - (void)setName:(NSString *)name{
2 if (_name != name) {
3 [ _name release];
4 _name = [name retain];
5 }
6 }
7 - (NSString *)name{
8 return [[ _name retain] autorelease];
9 }
技术分享


3,当把语义特性声明为copy时,setter和getter方法内部实现

技术分享
1 - (void)setName:(NSString *)name{
2 if (_name != name) {
3 [ _name release];
4 _name = [name copy];
5 }
6 }
7 - (NSString *)name{
8 return [[ _name retain] autorelease];
9 }
技术分享

iOS开发-面试总结(十三)

标签:

原文地址:http://www.cnblogs.com/stronger-ios-lcx/p/5634948.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!