从NSUserDefaults存储和检索一个长arrays
如何将一个长数组存储到NSUserDefaults
并检索它?
这是我的长arrays看起来如何:
long *arr; arr = new long [10]; for(int i = 0 ; i<10 ; i++) { arr[i] = i; }
现在我想将这个arr
存储到NSUserDefaults
,然后再检索它
您只能将对象存储在NSUserDefaults中。 所以你必须将数组转换为NSArray
。 但是,NSArrays也只存储对象,因此需要存储封装在NSNumber
对象中的long
整型值:
//saving NSUserDefaults *standardDefaults = [NSUserDefaults standardUserDefaults]; NSMutableArray *arrayObj = [[NSMutableArray alloc] init]; long *arr; arr = new long [10]; for(int i = 0 ; i<10 ; i++) { [arrayObj addObject:[NSNumber numberWithLong:arr[i]]]; } [standardDefaults setObject:arrayObj forKey:@"longArray"]; [arrayObj release]; //reading NSUserDefaults *standardDefaults = [NSUserDefaults standardUserDefaults]; NSArray *arrayObj = [standardDefaults objectForKey:@"longArray"]; long *arr; arr = new long [10]; for(int i = 0 ; i<10 ; i++) { arr[i] = [(NSNumber*)[arrayObj objectAtIndex:i] longValue]; }
通过使用NSArray – 而不是普通的C数组
NSUserDefaults *standardUserDefaults = [NSUserDefaults standardUserDefaults]; [standardUserDefaults setObject:myNSArray forKey:@"Prefs"];
检索:
NSArray *array = [standardUserDefaults objectForKey:@"Prefs"];