0

我创建了一些 NSUserDefaults,方法是创建一个新的 Settings Bundle 文件,然后用键和值填写它创建的 plist。
我的价值观之一是一个名为“收藏夹”的数组。我正在尝试使用以下方法加载它:

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSArray *tempArray = [[NSArray alloc] init];
tempArray = [defaults arrayForKey:@"favorites"];

我得到的只是(null)

我读过的一篇文章说您必须手动创建 NSArray 并将其保存在您的设置包中,以便它知道它实际上是一个真实有效的数组。真的是这样吗?还是我只是读错了数组?

4

1 回答 1

2

看起来没有 NSArray 被存储到 NSUserDefaults 中。

要保存一个空数组,请尝试:

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSArray *tempArray = [NSArray array];
[defaults setObject:tempArray forKey:@"favorites"];

现在您应该能够像最初尝试的那样拉出阵列。

要从 plist(与 NSUserDefaults 完全分离的野兽)中提取数据,请尝试:

NSDictionary *dictionary = [NSDictionary dictionaryWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"YourPlistFileName" ofType:@"plist"]];
myArray = dictionary[@"favorites"];
于 2013-08-14T18:02:51.623 回答