美文网首页iOS在路上
iOS readonly 属性赋值小记

iOS readonly 属性赋值小记

作者: Steven_2016 | 来源:发表于2018-07-10 21:50 被阅读45次

readonly 关键字用于属性的存取控制 ,如果不使用readonly ,编译器默认属性关键字为 readwrite。

在使用第三方sdk和自己制作sdk的过程中,经常遇见readonly修饰的属性。

既然使用readonly进行存储控制,那么很容易引出以下几个问题:

1、如何初始化?

2、如何更新?

3、如果能更新,如何阻止更新?

1答:1 自定义初始化方法,用实例变量接收初始化值;

自定义初始化方法1 使用实例变量接收

2答:2.1 使用KVC 进行更新

使用KVC进行更新

    2.2 重写属性声明,在.m中开放 write权限 使用点语法进行更新;

.m重写属性声明 这里仅仅表示可以这样实现赋值 调用

3答:3.1 重写 accessInstanceVariablesDirectly类方法,避免调用setValueForKey 时访问实例变量等;

3.2 重写 setValueForUndefinedkey 避免在他类调用时 引起crash

重写accessInstanceVariablesDirectly 重写setValueForUndefinedkey

打印结果:

打印结果

说了这么多,直接上干货:demo地址

  如果喜欢,请简书点击喜欢,如果觉着demo有用,欢迎star哦~

相关文章

网友评论

    本文标题:iOS readonly 属性赋值小记

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