2011-10-14 18 views
4

我有一個類別,使用shuffle方法延伸NSMutableArray。該類別是在.h文件中聲明和實施的,該文件包含在.pch文件中。在iOS 3.xx和4.xx上工作得很好。 我昨天安裝了Xcode 4.2。重新編譯的應用程序的基礎SDK設置爲5.0,部署目標爲3.2拋出-[__NSArrayM shuffle]: unrecognized selector sent to instance ...從一個類別的方法升級到Xcode 4.2/iOS 5後拋出一個異常

我試過iPhone 5.0模擬器,iPad 5.0模擬器,與iPhone 5的iPhone 4G - 沒有區別。

現在,如果我將聲明/實現移動到.m,其中發送shuffle消息的類已實現,則應用程序運行良好。 原始.h確實被導入 - 如果我只是將原始代碼.h複製到.m,編譯器會抱怨重複聲明。

回答

1

升級到Xcode 4.2導致編譯器從GCC更改爲Apple LLVM。而LLVM不喜歡.pch中的實現。將實現提取到.m文件,直接導入原始的.h文件,使用GCC進行編譯都可以解決問題。

+0

最後,關於我遇到的問題的一些信息。但我試過這個答案,但它仍然無法正常工作!任何想法?我即將把我的頭髮拉出來...... –

+0

我最終保留了我在pch中的實現,並用公共方法創建了一個NSOBject。現在工作 –

相關問題