2011-11-18 37 views
2

對於所有新的iOS 5方法都不是這樣,但我發現調用UINavigationBar的setBackgroundImage:forBarMetrics:方法將觸發「未找到實例方法」警告低於5.0。這是即使我連接到SDK 5.0。在設置較低的部署目標時,無法編譯包含iOS 5方法的代碼

更重要的是,用作參數的enum UIBarMetrics被報告爲「未聲明的標識符」,這將觸發編譯器錯誤。

任何想法爲什麼這是這樣嗎?我意識到,如果部署目標低於5.0,代碼將無法工作,但我在檢查UINavigationBar是否在運行時響應該選擇器,所以一切都應該正常。雖然我不明白編譯器錯誤。

編輯: 這隻發生在爲設備編譯和設備實際插入時(我測試過的設備運行iOS 5.0.1)。

+0

你可以檢查你的方案設置是否與模擬器的設置相同嗎?你可以有一個不同的目標下iOS的計劃,有一個較低的SDK然後5.0? – chown

+0

基本SDK始終設置爲最新的iOS(iOS 5)。請注意,我*能夠使用其他iOS 5方法,如UIViewController的childViewControllers。我有一種感覺,這個問題似乎只適用於外觀方法(那些標記爲UI_APPEARANCE_SELECTOR的方法)。 –

回答

2

那麼,我想出了這個謎。我設法通過刪除SDK 4.3來解決這個問題(我從Xcode 3中複製了一個,因爲它不是默認使用最新的Xcode + SDK包,我將它用於另一箇舊項目)。

我仍然無法解釋爲什麼兩個SDK都會導致錯誤,因爲我清楚地編譯了最新的SDK。

+1

謝謝你,它工作。順帶一提,以下是包含所有SDK的文件夾路徑: /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/ – Soonts