내 iPhone 응용 프로그램은 설치 후 처음 실행될 때 가끔 충돌합니다. 이 때마다 나는 애플릿을 실행하려고 할 때마다 결국 스플래시 화면이나 검은 색 화면에 남게됩니다. 응용 프로그램을 작동 시키려면 장치를 다시 시작해야합니다. 이 후 매번 잘 작동합니다. OS3 코드와 4 사이의 유일한 변경 사항은 'UIApplicationExitsOnSuspend'속성으로, 앱을 일시 중지하는 대신 항상 다시로드하도록합니다. 어떤 도움이라도 좋을 것입니다. 위에서 언급 한iPhone 응용 프로그램 충돌 (iOS4 전용)
- (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 - 설정을 통해 열거 NSUserDefaults에 defaultValues을 적용 번들 그들이 이미 회의에서 사용자에 의해 설정되지 않은 경우.
insertCheck - 오디오 녹음시 파일 무결성을 보장하기 위해 db에 대해 일부 쿼리를 수행하지만이 경우 응용 프로그램이 처음로드되기 때문에 아무 것도 수행하지 않습니다.
업데이트 : 여분의 메소드 호출 (위의 두)를 주석 처리하고 난 여전히 문제가 있습니다
.
해결책이없는 Apple 개발자 포럼에서 같은 종류의 문제가있는 사람들이 몇 명 있다는 것을 알고 있습니다. 한 개의 답변은 동일한 문제가있는 사용자로부터 왔지만 앱 스토어에서 승인 된 애플리케이션이었습니다.
감사합니다. Sj
'applicationDidFinishLaunching'및 'viewDidLoad' 메소드에서 발생하는 상황에 대한 코드를 포함하도록 게시물을 편집하고 싶을 수 있습니다. 또한 잘못된 데이터 형식 문자열 (예 : % @ 일 때 % d)이있는 NSLogs가 없는지 확인하십시오. 오류 메시지가 표시되지 않고 충돌이 발생할 수 있습니다. – iwasrobbed
윈도우로드가 정상적으로 보입니다. 사용자 기본값으로 인한 것이 아닌 경우 데이터베이스 체크 코드 또는 초기 패치 결과를 통해 디버깅을 시작하십시오. – iwasrobbed