我将此作为我的viewDidLoad
:
- (void)viewDidLoad
{
[super viewDidLoad];
if (defaults == [cells objectAtIndex:0])
{
NSString * myFile = [[NSBundle mainBundle]pathForResource:@"cells" ofType:@"plist"];
cells = [[NSMutableArray alloc]initWithContentsOfFile:myFile];
}
else
{
[defaults stringForKey:@"string1"];
}
}
对于我的viewWillDisappear
我有:
-(void)viewWillDisappear:(BOOL)animated
{
string1 = [cells objectAtIndex:0];
[defaults setObject:string1 forKey:@"string1"];
}
但是我无法保存数据。有谁知道我做错了什么?
答案 0 :(得分:3)
defaults
应该是NSUserDefaults
的实例:
defaults = [NSUserDefaults sharedUserDefaults];
因此,if (defaults == [cells objectAtIndex:0])
不是有效的代码行,除非你在调整RAM,否则它永远不会相等。
否则,代码看起来很好。
答案 1 :(得分:2)
您是否在某处将默认设置为[NSUserDefaults standardUserDefaults]
?另外,为什么要将它与单元数组中的第一个对象进行比较?看起来很奇怪。
否则你的想法是正确的。确保实际调用viewWillDisappear方法。您也可以致电[NSUserDefaults synchronize]
立即保存更改。
最后一件事,你在其他{}区块中没有做任何事情。您需要将[defaults stringForKey:@"string1"];
的值分配给变量才能使用它。