2011-08-22 48 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 –