Приложение 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, если они еще не были установлены пользователем в peferences.
insertCheck - выполняет некоторые запросы к БД, чтобы обеспечить целостность файла для аудиозаписей, но в этом случае, поскольку приложение загружается впервые, оно ничего не будет делать.
Обновление:
Я закомментировал дополнительные вызовы методов (два выше), и у меня все еще есть проблема.
Я нашел несколько людей, имеющих такую же проблему на форуме разработчиков Apple, без решений. Один ответ был от пользователя, имеющего ту же проблему, но там приложение было одобрено в магазине приложений.
Спасибо, Sj