Iphone 重新启动时应用程序崩溃

Iphone 重新启动时应用程序崩溃,iphone,objective-c,Iphone,Objective C,当我硬退出(双击home和减号)然后重新启动应用程序时,它就冻结了 控制台显示以下内容: [应用程序目录路径…]已更改;重读符号 我认为这可能与appdelagate.m中的代码有关 - (void)applicationWillTerminate:(UIApplication *)application { [self saveCode]; } - (void)saveCode { NSArray *paths = NSSearchPathForDirectoriesInDo

当我硬退出(双击home和减号)然后重新启动应用程序时,它就冻结了

控制台显示以下内容:

[应用程序目录路径…]已更改;重读符号

我认为这可能与appdelagate.m中的代码有关

- (void)applicationWillTerminate:(UIApplication *)application
{
    [self saveCode];
}

- (void)saveCode
{
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);  
    NSString *documentsDirectory = [paths objectAtIndex:0];
    NSString *path = [documentsDirectory stringByAppendingPathComponent:@"routine.plist"];
    [NSArray writeToFile:path atomically:YES];
}

第一:保存plist以填充UITableViewController是一种非常乏味的持久保存数据的方法,也是一种不一致的方法。正如您可能已经意识到的,我建议您改用plist


第二:运行调试器(在启动你的应用程序之前),并找到任何一行显示为黑色的文本(灰色线表示操作系统和cocoa层调用的方法,黑色线表示你自己的方法)。调试器可以通过run>debugger或
Command+Shift+Y

运行。在应用程序中使用位置管理器时,会遇到类似的崩溃问题-快速重新启动时。情况是:在iPhone4中,我的应用程序在按下home按钮而不是进入后台时退出。在iphone3g(不支持后台处理)上,情况是一样的——它在重新启动时崩溃(至少看起来像是崩溃)


如果我们等待1秒钟重新启动应用程序,它不会崩溃。

我还没有学习CoreData,不想浪费时间学习它和挂起我的应用程序。因此,我将学习它,并在它发布后将其实现到应用程序中。我在问题中发布了调试器产生的结果。这是控制台输出,您需要调试器输出。在发布后实现核心数据祝你好运关于核心数据,你是说发布后很难做到吗?好吧,我的建议是查看我在回答中给你指出的教程,阅读它,分析它,然后决定你是否想要实现它,或者你是否对你现在拥有的感到满意。我(和其他许多人,我相信)喜欢核心数据的原因是,一旦你掌握了它,它真的很容易使用(甚至比纯SQL更简单),加上它实际上是一个SQLite数据库。这是一个打字错误,还是你这样调用
[NSArray writeToFile:atomically:
?如果不是打字错误,那就是你的问题。用数组变量的名称替换
NSArray
。您好,我也面临同样的问题。在applicationWillResignActive方法中使用一些“performSelector”将导致重新启动应用程序后“无法恢复”崩溃。