2010-02-22 68 views
0

我正在使用NSUsersDefault在应用程序出现任何中断时保存应用程序的状态。iPhone + NSUserDefault + NSString

我所做的是我在我的类中创建了一个方法“saveState”,其中应用程序正在运行,并且在此方法中,我将所有必需的东西保存在NSUsersDefault中,其中包含我少有的NSString像

[prefs setObject:batsman1HowOut forKey:@“batsman1HowOut”];

现在,我从AppDelegate类 - > applicationWillTerminate方法调用“saveState”方法。

那么,什么情况是,当发生中断,它会在应用程序委托类和applicationWillTerminate方法将被调用,它将不是去哪里我在NSUsersDefault存储一切阶级的“saveState和”方法。

问题是,当我试图挽救的NSString(像上面的),它给我的错误说是超出了范围。

请帮帮我。

问候, PRATIK

+0

你已经发布或者删除了batsman1HowOut吗? – willcodejavaforfood 2010-02-22 08:19:20

+0

你是在谈论这个类的“dealloc”方法吗? – pratik 2010-02-22 08:24:22

+0

我在课堂的“dealloc”方法中发布了batsman1HowOut – pratik 2010-02-22 08:41:23

回答

0

时调用的方法applicationWillTerminate,大概字符串已经被释放。在将它保存到NSUserDefaults之后尝试释放该字符串。这不会导致内存泄漏,因为每次关闭应用程序时,都会调用applicationWillTerminate。