我的iPhone应用在安装后第一次运行时偶尔会崩溃。之后每次尝试运行应用程序时,它都会停留在启动画面或甚至黑屏,直到最终崩溃。我必须重新启动设备才能让应用程序正常工作。之后每次都可以正常运行。OS3和4之间唯一的更改是属性“UIApplicationExitsOnSuspend”,以强制应用程序每次重新加载而不是挂起。任何帮助都将是有益的。
以下是两个代码片段:
以下是两个代码片段:
- (void)applicationDidFinishLaunching:(UIApplication *)application
{
taskListViewController = [[TaskListViewController alloc] initWithNibName:@"TaskListView" bundle:nil];
taskListViewController.managedObjectContext = self.managedObjectContext;
[taskListViewController setAppDefaults];
UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:taskListViewController];
[taskListViewController release];
navController.navigationBar.tintColor = [UIColor blackColor];
[window addSubview:[navController view]];
[window makeKeyAndVisible];
}
- (void)viewDidLoad
{
NSLog(@"viewDidLoad - Start");
[super viewDidLoad];
NSError *error = nil;
if(![[self fetchedResultsController] performFetch:&error])
{
NSLog(@"Error with initial fetch %@, %@", error, [error userInfo]);
}
[activityIndicator startAnimating];
self.navigationItem.leftBarButtonItem.enabled = NO;
self.navigationItem.rightBarButtonItem.enabled = NO;
infoButton.enabled = NO;
syncButton.enabled = NO;
taskListTable.userInteractionEnabled = NO;
taskListTable.allowsSelection = NO;
checkingRecovery = true;
[self insertCheck];
}
其他提到的方法:
[taskListViewController setAppDefaults]
[self insertCheck];
setAppDefaults - 枚举设置包并将defaultValues应用于NSUserDefaults,如果用户尚未在偏好设置中设置它们。
insertCheck - 在数据库上执行一些查询,以确保音频记录的文件完整性,但在这种情况下,由于这是首次加载应用程序,它将不起作用。
更新:
我已经注释掉了额外的方法调用(上面的两个),但仍然遇到问题。
我在苹果开发者论坛上找到了几个遇到类似问题的人,但没有解决方案。一个回复来自一个遇到同样问题的用户,但他们的应用程序在应用商店中得到了批准。
谢谢Sj
applicationDidFinishLaunching
和viewDidLoad
方法中正在发生的代码。此外,请确保您没有任何使用错误数据格式字符串(例如%d而应该是%@)的NSLogs
,这些可能会导致崩溃而不显示任何错误消息。 - iwasrobbed