从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"];