您好,欢迎来到二三四教育网。
搜索
您的当前位置:首页关于@synthesize

关于@synthesize

来源:二三四教育网

首先, @synthesize myLocalVar = _myLocalVar; 这句话是显式帮你省掉了一个 getter 方法和一个 setter 方法. 两个方法长什么样不赘述.

其次, 从某个版本的 Xcode 开始, 你连 @synthesize 这句话也不需要写了, 但是请注意, 这只是一个 IDE 的特性. 你不需要手动合成, 不代表 @synthesize 不作用了, 仅仅是让能少写这一句话, 而 Xcode 帮你补全了.

基于上述, 如果你使用了自己的文本编辑器, 然后用自己用 clang 从命令行编译, @synthesize 这一句话是需要自己写的.

最后, 有如下例外

  1. 对于 readwrite 类型的属性, 你自行实现了 gettersetter
  2. 对于 readonly 类型的属性, 你自行实现了 getter
    以上两种情况, 你一旦自行实现了对应的 gettersetter, 对于本文的myLocalVar例子, 你将发现 _myLocalVar没有了, 意味着你需要@synthesize一下.
  3. dynamicsynthesize是互斥的
  4. @protocol中声明的属性
  5. category中声明的属性
  6. 你覆盖(overridden)父类的属性时, 必须手动synthesize.

Copyright © 2019- how234.cn 版权所有 赣ICP备2023008801号-2

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务