美文网首页
@synthesize和@dynamic

@synthesize和@dynamic

作者: afd42c3b8301 | 来源:发表于2018-10-16 10:48 被阅读0次

@property有两个对应的词,一个是@synthesize,一个是@dynamic。如果@synthesize和@dynamic都没写,那么默认的就是@synthesize var = _var;

@synthesize的语义是如果你没有手动实现setter方法和getter方法,那么编译器会自动为你加上这两个方法。

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

相关文章

  • @synthesize 和@dynamic的区别

    @synthesize 和@dynamic的区别 @synthesize 自动生成setter和getter方法,...

  • iOS @synthesize 和 @dynamic 区别

    1. @property中的 @synthesize 和 @dynamic 区别: @synthesize wil...

  • Object-c : @dynamic 与@synthesize

    1、 @dynamic与@synthesize作用 @dynamic 与@synthesize 是用于对@prop...

  • iOS基本面试题

    1、synthesize和dynamic有什么作用? synthesize:是系统自动生成getter和sette...

  • 面试题

    synthesize 和 dynamic区别 ? @synthesize 的语义是如果你没有手动实现 setter...

  • @dynamic和@synthsize

    一、使用上的区别 @synthesize和@dynamic是不能同时使用的。 @synthesize age = ...

  • @synthesize和@dynamic

    要彻底搞清楚这两个关键字需弄明白成员变量和成员属性的区别; 成员变量,OC1.0的时候我们为interface同时...

  • @synthesize和@dynamic

    @property有两个对应的词,一个是@synthesize,一个是@dynamic。如果@synthesize...

  • @dynamic 和 @synthesize

    1.@synthesize 该关键字没什么好说的,无非就是自动生成,而且现在都不用手动加,默认就是自动生成的 2....

  • @dynamic和@synthesize

    1.@property有两个对应的词,一个是@synthesize,一个是@dynamic。如果@synthesi...

网友评论

      本文标题:@synthesize和@dynamic

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