2018之iOS Category 和 Protocol 中的 Property 你们真的会了么?

一、property

合成存取器:

@property的格式:

1 @property (修饰列表) 变量类型 变量名;

Xcode4.4之前:

@property使编译器自定生成set/get方法声明。

@synthesize自动生成set/get方法的实现

@synthesize还会自动生成私有成员变量

Xcode4.4以后:

不用再写@synthesize,编译器通过@property就能给我们生成set/get方法的声明和实现,默认生成成员变量:_propertyName

用@property生成的成员变量是私有的。

当我们想改变默认的成员变量名时,@synthesize age = newName;‘

如果子类想访问父类的成员变量,

1、通过set/get方法

2、显示的声明成员变量

进入正题

首先声明:

category和protocol可以添加方法

category 和 protocol中可以添加@property 关键字

二、关于protocol中的property

在protocol中添加property时,其实就是声明了 getter 和 setter 方法,在实现这个protocol协议的类中,我们要自己手动添加实例变量,并且需要实现setter/getter方法

image.png
image.png
image.png
image.png
image.png

三、category中的property

在category中添加property时, 在@implentation添加 getter 和 setter方法时, 由于category不能添加实例变量

1)使用临时全局变量来替代成员变量

首先声明:Person没有name属性

image.png
image.png
image.png
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 如果让我回忆这两年来什么书让我记忆犹新,感动不已,内心久久不能忘却。那这本《皮囊》一定在这名单之内。当年读完余华的...
    林木青青阅读 514评论 0 2
  • 读《活着》时,书中的文字过于沉重,却又让我不得不在余华的叙述中深陷。我喜欢活着这个名字,充溢着压抑的活力和黯淡的温...
    冬晛阅读 312评论 0 0
  • 学习的闭环 学习会经过输入-输出-结果的过程。这样的学习会形成一个封闭的环,成为学习的闭环。我们可以以此来检验一...
    萤火之灯阅读 139评论 0 0
  • 全教程完,学完记得交作业。如果本教程对您有所帮助,请推荐给你的朋友。
    摇星学院阅读 1,287评论 0 0

友情链接更多精彩内容