美文网首页
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