笔者最近做项目中需要将用户的资料模型归档成plist 文件,并在应用启动时从 plist 文件中读取出来,使用了单例类来管理这个模型.因为用户资料中有些属性需要频繁的赋值修改,需要每次把模型取出来后修改属性,再归档到沙盒目录下是很麻烦的.所以通过单例类保存一个用户资料模型,需要的时候直接通过 getter 方法读取,然后通过setter方法赋值.那么这个时候问题来了, property 的属性不支持同时重写 setter 和getter方法.先看下边是如何实现的,然后再介绍下每一步的是怎么做的.
1 声明一个 property 描述的属性
2 使用@dynamic 属性名 告诉编译器不自动生成setter和 getter 方法
3 自己声明一个 _currentUser的成员属性 最好是在类拓展里边声明这个私有的成员属性
4 就是手写 setter 和 getter 方法 给自己声明的_ currenUser 的成员属性赋值和取值
setter 方法的内部实现
getter 方法内部实现
通过以上操作就可以屏蔽掉系统的 setter 和 getter 方法的实现,然后自己生成 setter 和 getter 方法 ,保证了setter和 getter 方法同时存在.
好了,我是大兵布莱恩特,欢迎加入博主技术交流群,iOS 开发交流群
![QQ20180712-0.png](https://img.haomeiwen.com/i1155481/9b84a3a3fce64f61.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
网友评论