天天看點

Xcode中Objc動态調用方法同時避免警告的幾個辦法

我們在xcode中使用objc寫代碼的時候往往會碰到動态調用方法的時候.

如果是靜态調用這很常見,不會有任何問題:

但如果method是運作時變化的值,則編譯器就會發出警告:

Xcode中Objc動态調用方法同時避免警告的幾個辦法

簡單來說,這是因為編譯器在開啟arc後不知道該方法的傳回值是什麼,該如何處理,是标記為ns_returns_retained還是ns_returns_autoreleased.

在網上搜了一下有幾種辦法可以解決,首先如果動态調用的方法不傳回值,則可以使用afterdelay來消除警告:

如果傳回值則可以使用宏來消除警告:

然後在需要的地方用宏包含:

最後一種方法是使用imp調用的方式,以下是我寫的調用包裝器:

注意方法傳回的是id,意味着可以是任何objc的對象值,但你必須時刻清楚實際傳回值的類型:

這裡我知道傳回的值實際是nsstring類型,是以沒有問題.

繼續閱讀