美文网首页
@synthesize @dynamic 区别和联系

@synthesize @dynamic 区别和联系

作者: 环宇飞杨 | 来源:发表于2020-03-16 16:49 被阅读0次

    @synthesize自动合成setter 和getter 和ivar,不过用@property会自动做这个事情。一般不用写,以下是一些特殊场景。

    1. 当覆盖父类属性的时候,比如类型不一样时,那么会提示已经父类合成过,无法在本类继续合成,需要使用@dynamic来明确意图(不需要自动生成)

    2. 在协议里使用属性时,@property是无法合成setter和getter 的,必须要使用@synthesize来声明让编译器自动生成,不然会因为找不到方法而发生异常。

    3. 分类里的@property能合成setter 和getter 但是没有ivar,所以需要运行时动态绑定。

    相关文章

      网友评论

          本文标题:@synthesize @dynamic 区别和联系

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