微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

ios – Objective-C编写通用getter和setter方法

在我的项目中,我有一个设置类,其属性包含自定义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 举报,一经查实,本站将立刻删除。

相关推荐