【发布时间】:2014-06-12 08:12:14
【问题描述】:
我正在尝试创建一个字典,它是 NSUserdefaults 的副本。我希望字典包含相同的值和键。 但是,当我们将 bool 和 int 值保存到字典时,我们需要将其转换为 NSNumber。现在我正在做以下事情。但不确定哪个值是 bool 值和 int 值。如果我能知道值的类型,我就可以休息了。有什么方法可以检查值是 bool 还是 int。
NSArray *availableUserDefaultsKeys = [NSArray arrayWithObjects:@"Key1", @"Key2",nil];
NSMutableDictionary *userDefaultsDictionary = [NSMutableDictionary dictionary];
NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
for (NSString *key in availableUserDefaultsKeys) {
id value = [userDefaults objectForKey:key];
if (value != nil) { // Is there any way to check whether the value is bool or int here
[userDefaultsDictionary setObject:value forKey:key];
} else {
[userDefaultsDictionary setObject:[NSNull null] forKey:key];
}
}
我检查了 debug.plist,其中存储了所有用户默认值,因为我们有 type 字段,它指定了类型。我们可以从这个字段中获取类型吗?
【问题讨论】:
标签: ios objective-c nsuserdefaults