1. 引
在NSDate的API中有两个属性使用了这个修饰符
这个class修饰符其实是静态属性的申明,或者是类属性的申明,并可以同时和其他的修饰符同时使用,这是在Xcode8后添加的,为了和Swift平齐;
2. 使用:
- 申明一个class的静态属性;
@property (class, nonatomic, strong) NSString *classProperty;
这时候编译器会给一个警告:
image.png
说静态属性需要一个定义它的方法,用@dynamic或者提供一个方法实现
- 于是在.m文件里我们这样干(两种方式):
- 使用@dynamic
@dynamic classProperty;
然后提供getter或者setter方法,这个看需求,引子里的是readonly,只需要提供一个getter方法即可,
+ (NSString *)classProperty {
return @"I'm rock man";
}
- 需要
static NSString *_classProperty;
+ (NSString *)classProperty {
return _classProperty;
}
+ (void)setClassProperty:(NSString *)classProperty {
if (![classProperty isEqualToString:_classProperty]) {
_classProperty = classProperty;
}
}
直接使用
TestObject.classProperty
网友评论