我有一个问题,我无法理解,并希望有人可以给我一个提示或帮助。
我有一个包含7个对象的表。当按下其中一个对象时,向用户呈现对应于按下的对象的新表。在此表中,用户可以按下“添加”按钮,将它们带到一个新表,在那里他们可以选择表2的对象。
表1和表3(第一个和最后一个)不需要编辑,但表2需要。我需要添加用户从表3中选择的数据,并在关闭后再次进入应用程序时保存它。
在表1中总有7个对象。并且需要能够有一个不同的表2。 所以我不确定最好的方法是创建7个不同的数组。
我之前看过,并且之前一直在使用NSUserDefaults
,但是当我使用NSUserDefaults
时,我不确定解决这个问题的好方法是什么。
答案 0 :(得分:6)
你需要让你的数组从用户默认值中修改它,然后将其重写回userdefaults。 获取阵列:
NSMutableArray *yourArray = [[NSUserDefaults standardUserDefaults] objectForKey:@"yourKey"]mutableCopy];
设置数组:
NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
[userDefaults setObject:yourArray forKey:@"yourKey"];
[userDefaults synchronize];
或者使用词典并将它们嵌套
NSMutableDictionary *yourDict1 = [[NSUserDefaults standardUserDefaults]objectForKey:@"yourKey1"]mutableCopy];
NSMutableDictionary *yourDict2 = [[yourDict1 valueForKey:@"yourKey2"]mutableCopy];
// THIS WILL ADD DATA TO YOUR DICTIONARY
[yourDict2 setValue:@"value" forKey:@"key"];
// THIS WILL GET DATA FROM YOUR DICTIONARY
NSString *tempStr = [yourDict2 valueForKey:@"keyToGet"];
// This will write your sub dictionary to your main dictionary
[yourDict1 setObject: yourDict2 forKey:@"yourKey2"];
// This will write your main dictionary back out to user defaults
NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
[userDefaults setObject: yourDict1 forKey:@"yourKey1"];
[userDefaults synchronize];
[yourDict1 release];
[yourDict2 release];