gpt4 book ai didi

ios - 可以观察(KVO)NSObject的每个属性吗?

转载 作者:行者123 更新时间:2023-12-01 16:54:45 25 4
gpt4 key购买 nike

我正在创建一个基类,其中所做的所有更改都会立即保存到NSUserDefaults(当然,仅是KVO编译部分),并在实例化该类型的对象时自动加载(这是一个非常基本的,可重用的用户数据存储区)。

我无意向此对象的每个子类提供类似“键列表”的常量,因此我希望有一种自动的方法来观察对象的每个属性。

任何想法如何做到这一点?当然只有 public API。

最佳答案

如果您具有对象的一组属性,则可以将它们保存到NSUserDefaults中的词典中。要在每次设置属性时保存每个属性,可以使用以下方法为每个属性创建自定义的setter方法:

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
if ([defaults objectForKey:@"yourKey"] == nil) {

NSDictionary *dict = [NSDictionary dictionaryWithObject:@"yourObject" forKey:@"keyForYourObject"];
// Add stuff to the dictionary
[defaults setObject:dict forKey:@"yourKey"];
}else{
NSDictionary *dict = [defaults objectForKey:@"yourKey"];
// Add stuff to the dictionary
[defaults setObject:dict forKey:@"yourKey"];
}

这将为您提供一个包含所有属性的UserDefaults中存储的字典。然后使用standart方法获取键列表:
NSDictionary *dict = [[NSUserDefaults standardUserDefaults] objectForKey:@"yourKey"];
NSArray *keys = [dict allKeys];

关于ios - 可以观察(KVO)NSObject的每个属性吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12657537/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com