我需要在NSUserDefaults中預填充並保存數組,以便下游方法可以讀取和寫入存儲在那裏的十個值。我已經構建了這個可行的解決方案,但有沒有更好的方法來做到這一點?使用零值預填充NSUserDefaults數組
任何見識都被讚賞! LQ
NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
NSMutableArray *myArray = [[NSMutableArray alloc] init];
// Set the array with ten Zero Value placeholders
for (NSUInteger i = 0; i < 10; ++i) {
[myArray addObject:[NSNumber numberWithInt:0]];
}
[userDefaults setObject:myArray forKey:@"someKeyName"];
[myArray release];
後來的方法調用這個數組是這樣的:
- (void)doSomethingUseful {
NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
NSMutableArray *someUsefulArray = [[NSMutableArray alloc] initWithArray:[userDefaults objectForKey:@"someKeyName"]];
// read some values, write some values: int someInt = [someUsefulArray objectAtIndex:3]; // etc.
// store array values back to NSUserDefaults . . .
// IS THERE A WAY TO READ AND WRITE DIRECTLY TO INDEX 3 of the NSUserDefaults array instead???
[someUsefulArray release]
}
是的,它根本不感覺優雅。 – 2011-04-06 21:46:30