首页 > 移动平台 > 详细

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

时间:2016-07-02 11:35:59      阅读:220      评论: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
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!