美文网首页
@synthesize和@dynamic分别有什么作用?

@synthesize和@dynamic分别有什么作用?

作者: 西门丨不吹雪 | 来源:发表于2016-07-23 17:45 被阅读549次

    这是@property的两个对应词,@synthesize和@dynamic

    1.@synthesize告诉编译器:如果你没有手动实现setter和getter方法,编译器会自动帮你生成
    2.@dynamic告诉编译器:用户需要自己实现setter和getter方法,不自动生成。假如一个属性被声明为 @dynamic var,然后你没有提供 @setter方法和 @getter 方法,编译的时候没问题,但是当程序运行到 instance.var = someVar,由于缺 setter 方法会导致程序崩溃;或者当运行到 someVar = var时,由于缺 getter 方法同样会导致崩溃。编译时没问题,运行时才执行相应的方法,这就是所谓的动态绑定。

    相关文章

      网友评论

          本文标题:@synthesize和@dynamic分别有什么作用?

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