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

#import
@interfacePerson:NSObject
@propertyNSString*name;
@end
这样就直接能使用p.name了。好像不需要如下定义:
#import
@interfacePerson:NSObject{
NSString*_name;
}
@propertyNSString*name;
@end
这两种方式有啥区别呢?
手掌心
浏览 354回答 2
2回答

慕森王

我的经验来说,建议是全部用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
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript