从NSUserDefaults存储和检索长数组 [英] Storing and retrieving a long array from NSUserDefaults
本文介绍了从NSUserDefaults存储和检索长数组的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
如何在 NSUserDefaults
中存储长数组并检索?
How can I store a long array into NSUserDefaults
and retrieve it?
look:
long *arr;
arr = new long [10];
for(int i = 0 ; i<10 ; i++)
{
arr[i] = i;
}
现在我要存储这个 arr
到 NSUserDefaults
,然后再检索
推荐答案
只能在NSUserDefaults中存储对象。所以你必须将数组转换为 NSArray
。但是,NSArrays只存储对象,所以你需要存储封装在 NSNumber
对象中的 long
p>
You can only store objects in NSUserDefaults. So you have to convert the array to an NSArray
. However, NSArrays also only store objects, so you need to store the long
values encapsulated in an NSNumber
object:
//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];
}
这篇关于从NSUserDefaults存储和检索长数组的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文