类变量声明 两种方式

iOS 码拜 9年前 (2016-03-26) 1055次浏览
@interface AClass : NSObject {  
BOOL isTrue;
 }  
@property (assign, readonly) BOOL isTrue;

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

有什么区别?

解决方案

20

@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,效率更高点

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明类变量声明 两种方式
喜欢 (0)
[1034331897@qq.com]
分享 (0)