类变量声明 两种方式

奔雷手 2016-05-05 04:39:29

@interface AClass : NSObject {
BOOL isTrue;
}
@property (assign, readonly) BOOL isTrue;




@interface AClass : NSObject
@property (assign, readonly) BOOL isTrue;


有什么区别?
...全文
149 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
menglanfenghen 2016-05-06
  • 打赏
  • 举报
回复
@interface Test : NSObject{ // BOOL isTrue; 这里也可以不写,不写的缺点是,某个子类继承了isTrue,会不能直接用_isTrue属性 } @property (nonatomic,assign, readonly)BOOL isTrue; @end @implementation Test //@synthesize isTrue=_isTrue;系统帮你做了这件事,所以你不用写 //@synthesize isTrue=_isTrue;如果你觉得前置_不可接受,想改成后置的,这里就得写一下 @end @property等同于在.h文件中声明实例变量的get/set方法,@synthesize等同于在.m文件中实现实例变量的get/set方法。使用@property和synthesize创建存取器要比手动声明两个存取方法(getter和setter)更简单。而且我们在使用属性时可以使用点语法赋值或取值,语法更简单,更符合面向对象编程。 如果非多线程开发的话,建议加上nonatomic,效率更高点

29,028

社区成员

发帖
与我相关
我的任务
社区描述
主要讨论与iOS相关的软件和技术
社区管理员
  • iOS
  • 大熊猫侯佩
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧