美文网首页
2018-05-04

2018-05-04

作者: iPhone贴膜小哥 | 来源:发表于2018-05-04 18:20 被阅读15次

1. 引

NSDate的API中有两个属性使用了这个修饰符

image.png

这个class修饰符其实是静态属性的申明,或者是类属性的申明,并可以同时和其他的修饰符同时使用,这是在Xcode8后添加的,为了和Swift平齐;

2. 使用:

  1. 申明一个class的静态属性;
@property (class, nonatomic, strong) NSString *classProperty;

这时候编译器会给一个警告:


image.png

说静态属性需要一个定义它的方法,用@dynamic或者提供一个方法实现

  1. 于是在.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

相关文章

网友评论

      本文标题:2018-05-04

      本文链接:https://www.haomeiwen.com/subject/jtxjrftx.html