好的,那么从新安装应用程序(在 iPhone 模拟器上没有先前安装的应用程序)开始,应用程序启动良好。然后我按下主页按钮并单击图标,也很好。然后,如果我按下主页按钮,然后从多任务栏中关闭应用程序,然后再次按下图标,我会收到 SIGKILL 错误。
但是,当我在 Xcode 中按下运行时,它总是无故障地工作(即使我已经从多任务栏中关闭它,而按下图标失败)。这只是模拟器的一个怪癖吗?这种行为仅在我实现了一些 NSUserDefaults 方面后才开始出现,以记住它的状态等等。它确实在正常工作时记住所有默认值。
任何帮助都将不胜感激。
编辑:
以下是我认为与我的 MainViewController 中的 NSUserDefaults 相关的信息(我不在任何其他 viewController 中使用 UserDefaults)。
我在其他几个方法中执行了一些 setObjects/synchronizes,但它们只在点击按钮时执行(当它崩溃时不会发生)。
但是,当我在 Xcode 中按下运行时,它总是无故障地工作(即使我已经从多任务栏中关闭它,而按下图标失败)。这只是模拟器的一个怪癖吗?这种行为仅在我实现了一些 NSUserDefaults 方面后才开始出现,以记住它的状态等等。它确实在正常工作时记住所有默认值。
任何帮助都将不胜感激。
编辑:
- (void)viewDidLoad
{
NSUserDefaults * defaults = [NSUserDefaults standardUserDefaults];
NSDictionary *appDefaults = [NSDictionary dictionaryWithObjectsAndKeys:
[NSNumber numberWithInt:1], @"firstRun",
nil];
[defaults registerDefaults:appDefaults];
if ([[defaults objectForKey:@"firstRun"] intValue] == 1) {
//do the stuff required at first launch
table = [NSMutableArray array];
Stocks =[NSMutableArray array];
Money =1234.56;
mem=@"GOOG";
[defaults setDouble:Money forKey:@"money"];
[defaults setObject:mem forKey:@"ticker"];
[defaults synchronize];
self.Input.text=mem;
- (void)viewWillAppear:(BOOL)animated
{
NSUserDefaults * defaults = [NSUserDefaults standardUserDefaults];
if ([[defaults objectForKey:@"firstRun"] intValue] == 0) {
[self entered:nil];
} else if ([[defaults objectForKey:@"firstRun"] intValue]== 1){
[defaults setObject:[NSNumber numberWithInt:0] forKey:@"firstRun"];
[defaults synchronize];
}
[super viewWillAppear:animated];
}
以下是我认为与我的 MainViewController 中的 NSUserDefaults 相关的信息(我不在任何其他 viewController 中使用 UserDefaults)。
我在其他几个方法中执行了一些 setObjects/synchronizes,但它们只在点击按钮时执行(当它崩溃时不会发生)。