2012-06-26 2 views
0

iPhone 3.0 이상을 지원하는 내 앱에 Three20이 있습니다.iPhone - iOS 3.x (_UIApplicationDidEnterBackgroundNotification)에서 시작시 앱이 다운 됨

iOS 3.0, iOS 3.1을 사용하여 앱을 실행하면 시작할 때 앱이 즉시 중단됩니다.
나는 빌드 설정에서 뭔가를 놓치고,

Date/Time:  2012-06-26 10:38:36.761 -0600 
OS Version:  iPhone OS 3.1.3 (7E18) 
Report Version: 104 

Exception Type: EXC_BREAKPOINT (SIGTRAP) 
Exception Codes: 0x00000001, 0xe7ffdefe 
Crashed Thread: 0 

Dyld Error Message: 
    Symbol not found: _UIApplicationDidEnterBackgroundNotification 
    Referenced from: /var/mobile/Applications/8E9E6F79-80BB-4CCD-A510-CCBF7BB78BE8/MyApp.app/MyApp 
    Expected in: /System/Library/Frameworks/UIKit.framework/UIKit 
    Dyld Version: 149 

당신이 무슨 일이 일어나고 있는지 알아 : 아래

내 충돌 보고서입니까?

UPDATE 1 :
그래서 나는 UIApplicationDidEnterBackgroundNotification 내 프로젝트에
에 대한 검색을 수행하고 TTBaseNavigator.m 파일에있는 3 개 결과가있다.

- (id)init { 
    self = [super init]; 
    if (self) { 
    _URLMap = [[TTURLMap alloc] init]; 
    _persistenceMode = TTNavigatorPersistenceModeNone; 

    NSNotificationCenter* center = [NSNotificationCenter defaultCenter]; 
    [center addObserver:self 
       selector:@selector(applicationWillLeaveForeground:) 
        name:UIApplicationWillTerminateNotification 
       object:nil]; 
#ifdef __IPHONE_4_0 
    if (nil != &UIApplicationDidEnterBackgroundNotification) { 
     [center addObserver:self 
       selector:@selector(applicationWillLeaveForeground:) 
        name:UIApplicationDidEnterBackgroundNotification 
        object:nil]; 
    } 
#endif 
    } 
    return self; 
} 

이 방법이 세그먼트

#ifdef __IPHONE_4_0 
UIKIT_EXTERN NSString *const UIApplicationDidEnterBackgroundNotification 
__attribute__((weak_import)); 
UIKIT_EXTERN NSString *const UIApplicationWillEnterForegroundNotification 
__attribute__((weak_import)); 
#endif 

두에

하나

는이 코드를 조정할 방법을 알고 수행 응용 프로그램은 아이폰 OS 3.0과 아이폰 OS 3.1에서 실행을 수 있도록.

업데이트 2 :

은 현재 내가 그래서 두 __IPHONE_4_0 #ifdef와 블록을 언급 TTBaseNavigator를 사용하지 마십시오.
내 문제를 해결하지만 다른 사람이이 솔루션을 사용하여 Three20 코드에 주석을 달지 않아도되는지 궁금합니다.

감사합니다.

+0

Xcode에서 앱의 배포 대상으로 설정되는 항목은 무엇입니까? 나는 그것을 3.x로 설정하면 컴파일러가 무시할 코드가 생길 것이라고 생각했을 것이다. –

+0

개발 목표는 IOS 3.0입니다. –

답변

0

나는 두 개의 댓글을 달고 있습니다. #ifdef __IPHONE_4_0 블록. (업데이트 1 참조)
내 문제가 해결되었습니다.

2

UIApplicationDidEnterBackgroundNotification 이벤트에 대한 문서에서 "iOS 4.0 이상에서 사용 가능합니다."라는 메시지가 표시됩니다.

+0

필자에게 상기시켜 주신 Phillips에게 감사드립니다. –