2010-09-19 40 views
1

我有一個應用程序在iOS 4.0或更高版本上正常工作,但在設備3.1.3上啓動後立即崩潰或更低。我已將「基本SDK」設置爲「4.1」和「部署目標」爲「3.0」。應用程序工作在iOS4.0或更高版本,但在設備3.1.3或更低版本上啓動後立即崩潰

崩潰日誌 -

dyld的錯誤消息: 找不到符號:_UIKeyboardFrameEndUserInfoKey 從參考:在/ var /移動/應用/預期FE470A03-6285-48E4-B188-A0023500AA84/XXX :/系統/庫/框架/ UIKit.framework/UIKit Dyld版本:149

我對新框架的鏈接很薄弱。

任何幫助非常感謝。

問候, 阿米特

回答

3

恆定UIKeyboardFrameEndUserInfoKey用的iOS 3.2中引入。所以它在3.1.3設備上不可用。此外,該常量在UIKit框架中定義。所以弱連接到新的框架是不夠的,因爲UIKit是舊的框架。

我看到兩個選項:

  1. 切換到弱鏈接的UIKit的(並確保恆定的不是舊設備上使用)。

  2. 更換使用UIKeyboardFrameEndUserInfoKeyUIKeyboardBoundsUserInfoKey。它被棄用,工作方式略有不同。但它仍然有效。

+0

我會聯UIKit.but嘗試弱,我相信我還沒有在我的項目中使用UIKeyboardFrameEndUserInfoKey。感謝你的回答。 – 2010-09-19 14:23:19

2

弱鏈接「UIKit」框架有訣竅。還有一行崩潰應用程序使用「UIApplicationWillEnterForegroundNotification」,而不檢查它是否可用。 以下檢查已修復該問題。

if (&UIApplicationWillEnterForegroundNotification != NULL) { 
//Register for a notifiation when application enter into foreground state 
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(reloadVCData:) name:UIApplicationWillEnterForegroundNotification object:nil]; 
} 

問候, 阿米特

+0

感謝那個阿米特,我不確定如何檢查。 – DonnaLea 2010-11-23 00:40:34

相關問題