0
我一直在尋找答案,但是我的關鍵詞fu只是明顯的讓我失望。爲什麼回報似乎在objc中定義宏造成麻煩
我有我正在使用objc/Xcode中的宏:
#define strongify(source, target) __strong typeof(source) target = source; if(target == nil) NSLog(@"variable was already nil")
導致我經常需要編寫代碼,像這樣:
strongify(weakSelf, strongSelf);
if (!strongSelf) return;
所以我想我會用下面的宏展開:
#define strongifyOrReturn(source, target) __strong typeof(source) target = source; if(target == nil) return
Xcode拒絕自動完成它,並抱怨它doesn編譯時不知道它。
如何,如果我不使用return關鍵字,只是NSLog仍然使用相同的宏名稱,Xcode會很高興地按照我的要求做,並且新名稱列在自動完成建議中。
我希望你們中的一些可以告訴爲什麼會這樣...
我無法重現該問題,我的Xcode愉快地自動完成該宏。 (這並不意味着* I *會對此宏感到滿意:-) –
xCode給出的錯誤是什麼? –
@ThilinaCháminHewagama它給了我一個錯誤,如'隱式聲明的函數'strongifyOrReturn'在C99中無效' – CodeReaper