在我的项目中,我有一个设置类,其属性包含自定义setter,可访问NSUserDefaults以使一切更简单.想法是Settings类有
@property Nsstring *name
它具有从NSUserDefaults获取名称值的自定义getter以及在那里保存新值的setter.通过这种方式,在整个项目中,我只与Settings类进行交互,以管理用户定义的首选项.问题是,编写所有getter和setter似乎过于重复(我有大约50个属性),并且想创建一个适用于所有变量的setter和一个getter.我唯一的问题是如何在setter中获取变量的名称.
最后一个问题是:是否有可能在getter或setter中查找被调用函数的属性?
如果你有其他的方法,我也会很感激,但考虑到我想把所有的NSUserDefaults东西保存在一个类中,我想不出一个不包括编写50个getter和setter的替代方法.
谢谢!
解决方法
我发现你的问题非常有趣,我对自己说“接受挑战!”.
我在Github上创建了this项目.
基本上,您所要做的就是将VBSettings类子类化,然后声明de属性,如下所示:
@interface MySettings : VBSettings @property (strong,nonatomic) Nsstring *hello; @end
“hello”的值将以“hello”键保存到NSUserDefaults.用法示例:
MySettings settings = [[MySettings alloc] init]; settings.hello = "World!"; //The value is saved in NSUserDefaults NSLog(@"%@",settings.hello); //The value is restored from NSUserDefaults.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。