SIGKILL在iPhone上发布应用程序信号,但不是Xcode
好的,所以从新鲜的(app以前没有安装在iPhone模拟器上),应用程序启动正常.然后我按下主页按钮并单击图标,它也没关系.然后,如果我按下主页按钮,然后从多任务栏关闭应用程序,然后按下图标我收到SIGKILL错误.
然而,当我按下Xcode中的运行时,它总是完美无缺地工作(即使我从多任务栏关闭它,在那里按下图标失败).这只是模拟器的怪癖吗?这种行为只有在我实现了一些NSUserDefault东西,记住它的状态等之后才开始.它确实记住所有的默认值,当它工作时. 任何帮助表示赞赏. 编辑: - (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 / synchronize,但它们仅在单击按钮时执行(在崩溃时不会发生). 解决方法
从多任务栏中删除应用程序时,实际上是永久关闭它.因此,您销毁实例(所有进程都被杀死),XCode与您的应用程序关联.这就是您收到SIGKILL错误的原因.
有关iPhone模拟器的更多信息:http://developer.apple.com/library/ios/#DOCUMENTATION/Xcode/Conceptual/ios_development_workflow/25-Using_iOS_Simulator/ios_simulator_application.html 实际上,如果您在实际设备上运行应用程序,并且在应用程序连接到XCode时将其从多任务栏中删除,则甚至会发生这种情况.但是,如果您的应用程序安装在设备上而未连接到Xcode以进行运行/测试/分析,则不会出现此问题. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |