2

幾乎weakSelf模式我在網上遇到的每一個例子都有語法的iOS的Objective-C:weakSelf語法

__weak typeof(self) weakSelf = self; 

但是,編譯器抱怨這句法在Xcode的最新版本,要求:

__weak __typeof__(self) weakSelf = self; 

語法是否改變,或者我缺少導入?我試圖拉<objc/runtime.h>但沒有變化。

隱形獎金問題:爲什麼不直接投它?

__weak MyBoffoClass *weakSelf = self; 

我在這裏找到一個答案,表示最好直接施放它,但沒有理由爲什麼。

+1

看起來合理的答案在這裏:http://stackoverflow.com/questions/14877415/difference-between-typeof-typeof-and-typeof-objective-c – danh 2015-03-31 00:32:55

+0

謝謝,我搜索了typeof,但沒有得到那個結果,顯然應該深入挖掘,謝謝。 – 2015-03-31 01:56:25

回答

0

在@danh的幫助下指向我Difference between typeof, __typeof and __typeof__ (Objective-c)後,我發現問題出在編譯器設置中。

點擊在Project Navigator窗口頂部的項目,點擊Build Settings,並選擇View AllChoosing Settings

下一頁向下滾動到蘋果LLVM ññ - 語言和檢查設置: Language Settings

在我的情況下,語言方言被設置爲C99,它不支持GNU編譯器宏和其他擴展的C語言。

不知道爲什麼它爲此項目設置(項目架構師不記得原因),我只需要在閱讀StackOverflow代碼片段時考慮到這一點。因爲我是一個懶惰的打字員,所以比改變它來引進更好。