-1 cocoa-touch objective-c ios
如何将长阵列存储NSUserDefaults并检索?
以下是我的长阵列的外观:
long *arr;
arr = new long [10];
for(int i = 0 ; i<10 ; i++)
{
arr[i] = i;
}
Run Code Online (Sandbox Code Playgroud)
现在我想将其存储arr到NSUserDefaults稍后然后检索它
您只能在NSUserDefaults中存储对象.所以你必须将数组转换为NSArray.但是,NSArrays也只存储对象,因此您需要存储long封装在NSNumber对象中的值:
//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];
}
Run Code Online (Sandbox Code Playgroud)