2012-01-05 4 views
-1

탭 표시 줄의 각보기에 대해 약 3 개의 서로 다른보기 컨트롤러가있는 응용 프로그램을 작성했습니다. applicationDidEnterBackground :를 각 뷰 컨트롤러에서 호출하여 홈 버튼을 탭한 후 해당 뷰의 모든 데이터를 저장합니다. 이것은 iPad 시뮬레이터에서 완벽하게 실행되지만, 어떤 이유로 iPhone 시뮬레이터에서 데이터를 편집하려고 시도한 후 충돌이 발생했습니다. 나는 이것이 아마도 applicationDidEnterBackground를 넣는 것에 관한 문제라고 생각했다 :보기 컨트롤러에 문제가 있었다면 iPad 시뮬레이터에서도 충돌하지 않을까?applicationDidEnterBackground : 문제

은 내가 응용 프로그램의 위임에 applicationDidEnterBackground :와를 넣어 것을 알고 있지만, 내 방법은 다음과 같은 종류의 외모 :

- (void)applicationDidEnterBackground:(NSNotification *)notification { 
    NSMutableArray *array = [[NSMutableArray alloc] init]; 
    [array addObject:firstField.text]; 
    [array addObject:secondField.text]; 

    [array writeToFile:[self dataFilePath] atomically:YES]; 
} 

나는 앱 위임에 넣고 경우, 물론 인식 할 수없는 firstField 또는 secondField는 헤더 파일에 선언하지 않았거나 합성하지 않았기 때문에 나타납니다. App Delegate에서 모든 것을 선언했다면, 파일 소유자의 클래스가 특정 뷰 컨트롤러 중 하나이기 때문에 제 펜촉 파일의 콘센트가 실패합니다.

iPad 시뮬레이터에서 제대로 실행되기 때문에 applicationDidEnterBackground의 배치가 나의 문제조차되지 않습니까? 또한 아이폰 시뮬레이터에서도 잘 돌아갔다. 모든 닙에서 이미지 뷰의 배경을 변경 한 다음이 작업이 시작되었습니다. 나는 모든 콘센트와 동작을 재확인했다.

편집 : 수정했습니다. 내가 iPad의 펜촉에 추가하기로 결정한 추가 필드가 있었지만 iPhone의 필드는 없었습니다. 비록 그것이 좋을지라도 나는 그렇지 않다. 그것은 진행되고 있었던 모든 이상을 설명합니다. 나는 iPad의 펜촉에있는 필드를 삭제하고 모든 것은 괜찮습니다. 필립, 도와 주셔서 대단히 감사 드리며 제게 그것을 보라고 제안합니다. 그것은 매우 관대합니다.

+0

applicationDidEnterBackground는 App Delegate에서만 호출해야합니다. 해당 메소드가 View Controller에서 호출되고 있는지 확인하십시오. 각 컨트롤러의 앱 위임자로부터 앱을 특별히 호출하고 있습니까? 각각에 중단 점을 설정하고 두 경우 모두 실제로 호출 중인지 확인하십시오. –

+0

감사. 네, 각각의 View Controller에서 호출되고 있습니다. 오류없이 해당 뷰에 모든 콘센트를 포함시킬 수있는 유일한 방법이었습니다. applicationDidEnterBackground 필드는 기본 App Delegate에서 공백으로 남습니다. 이 문제는 iPad 시뮬레이터에서 제대로 작동하더라도 문제가 될 수 있습니까? – John

+1

나는 App의 델리게이트에서만 호출되어야하기 때문에 이러한 메소드가 어떻게 불려지는지 혼란 스럽다. http://developer.apple.com/library/ios/#documentation/uikit/reference/UIApplicationDelegate_Protocol/Reference/Reference.html 어쩌면 프로젝트를 내 이메일 (프로필)에 압축하여 보낼 수도 있습니다. 너를 위해서. –

답변

1

해결했습니다. 내가 iPad의 펜촉에 추가하기로 결정한 추가 필드가 있었지만 iPhone의 필드는 없었습니다. 비록 그것이 좋을지라도 나는 그렇지 않다. 그것은 진행되고 있었던 모든 이상을 설명합니다. 나는 iPad의 펜촉에있는 필드를 삭제하고 모든 것은 괜찮습니다. 필립, 도와 주셔서 대단히 감사 드리며 제게 그것을 보라고 제안합니다. 그것은 매우 관대합니다.

관련 문제