2011-08-22 79 views
4

雖然轉換一個應用程序來使用I跨越這個錯誤來自動引用計數:目標C SCNetworkReachabilityContext ARC轉換

SCNetworkReachabilityContext context = {0, self, NULL, NULL, NULL}; 

一個Objective-C指針爲「無效*」的隱式轉換是不允許與ARC

這修復編譯器錯誤,但會發出警告:

SCNetworkReachabilityContext context = {0, objc_unretainedPointer(self), NULL, NULL, NULL}; 

如何擺脫這一警告的?

初始化 '無效*' 有型 'objc_objectptr_t'(又名 '常量無效*')的表達丟棄預選賽

+0

您是否嘗試過只是將它投射到void *?我不確定這是否是正確的解決方案。 – jtbandes

回答

7

你應該能夠施展自我(ID)爲void *沒有問題。

SCNetworkReachabilityContext context = {0, (void *)self, NULL, NULL, NULL}; 
+3

謝謝!使用橋接演員工作。 (__bridge void *)self – logotype

+4

這不是橋接調用,(void *)objc_unretainedPointer(self)將是更準確的方法。 –

+0

某人在此處提供了一個ARCified Apple的可訪問性示例。 https://gist.github.com/1182373 –