iOS - 属性中的class修饰符:

遇到了一个类似的例子,记录一下

//放在.h
@property (class, nonatomic, readonly) NSString *version;
//我们这里用的是readonly 修饰所以我们必须手动实现 其get方法

//外部调用的get方法,相当于其类方法调用 [Class version];
.m
//内部实现的话 可定义一个静态变量
static NSString* _version = @“0.1.1”;

-(NSString *) version {
    return _version;
}

//.h
@property (class, nonatomic) NSString *name;
//.m
static NSString *_name = nil;
//实现set 和 get方法

-(NSString *) name {
    if(_name ==nil) {
        _name = [NSString new];
    }
    return _name;
}

-(void) setName:(NSString*)name {
    if(_name != name) {
        _name = [name copy];
    }
}

 

Objective-C now supports class properties, which interoperate with Swift type properties. They are declared as: @property (class) NSString *someStringProperty;. They are never synthesized. (23891898)

Objective-C现在支持与Swift类型属性进行交互转换的类属性,这些属性永远不会synthesized

posted @ 2019-12-05 16:34  lemon小虎  阅读(1313)  评论(0)    收藏  举报