为了账号安全,请及时绑定邮箱和手机立即绑定

OC 直接使用@property就能定义属性了吗?

OC 直接使用@property就能定义属性了吗?

手掌心 2019-04-14 10:35:12
#import@interfacePerson:NSObject@propertyNSString*name;@end这样就直接能使用p.name了。好像不需要如下定义:#import@interfacePerson:NSObject{NSString*_name;}@propertyNSString*name;@end这两种方式有啥区别呢?

2 回答

?
慕森王

TA贡献1777条经验 获得超3个赞

我的经验来说,建议是全部用property定义名字,这样能分清楚变量内存操作方式(多线程实在太少,可以忽略)。并且,对于我来说,这是更容易辨清全局变量的方法之一,在m文件中直接使用_name,可以快速理解这是全局变量。我认为,使用property来做全局变量是个非常好的习惯。另外,@freewolf这里讲到的synthesize其实可以省略。这里用一个简单的setter来举例。
#import
@interfacePerson:NSObject
@property(nonatomic,retain)NSString*name;
@end
#import"Person.h"
@implementationPerson
//下一步可以省略
@synthesizename=_name;
-(void)setName:(NSString*)name
{
name=_name;
}
@end
                            
查看完整回答
反对 回复 2019-04-14

添加回答

代码语言

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号