如果我这样做
NSArray * myArray = [[NSArray alloc] init];
myArray = [[NSUserdefaults standardUserDefaults] objectForKey:@"array"];
[myArray release];
我是否正在销毁密钥NSUserDefaults
@"array"
中存储的值?它仍然可以提取或不提取吗? [[NSUserdefaults standardUserDefaults] objectForKey:@"array"];
return
指针或值?
答案 0 :(得分:5)
您对objectForKey的调用正在返回一个自动释放的数组。
不要在那里做alloc / init或release事。你会泄漏,很可能会崩溃。
只是做:
NSArray * myArray = [[NSUserDefaults standardUserDefaults] objectForKey: @"array"];
答案 1 :(得分:2)
我是否要销毁存储在NSUserDefaults中的值@“array”?
否强>
它是否仍然可以提取?
<强>可提取强>
[[NSUserdefaults standardUserDefaults] objectForKey:@“array”];返回指针或值?
<强>指针。返回指向对象的指针。
现在您的代码不正确。你可以像这样重写它:
NSArray * myArray = [[[NSUserdefaults standardUserDefaults] objectForKey:@"array"] retain];
....
[myArray release];
答案 2 :(得分:2)
听起来我想要摆脱价值。你正在做的是用[[[NSUserdefaults standardUserDefaults] objectForKey:@"array"]
的数据制作一个数组。
如果您想获取数据并在其他地方使用它:
NSArray * myArray = [[[NSUserDefaults standardUserDefaults] objectForKey:@"array"] retain];
// do stuff here
[myArray release];
就像铍一样说。当然,您可能必须先设置它:
[[NSUserDefaults standardUserDefaults] setObject:anObject forKey:@"array"];
如果你想摆脱数据:
[[NSUserDefaults standardUserDefaults] removeObjectForKey:@"array"];
因为老实说我不知道你在滑雪什么,所以很难找到你想要的答案。你可以把它清理一下吗?
答案 3 :(得分:0)
存储阵列
NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
[userDefaults setObject:yourArray forKey:@"yourKey"];
[userDefaults synchronize];
提取
NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
NSArray *yourArr = [userDefaults objectForKey:@"yourKey"];