【问题标题】:Objective-C SCNetworkReachabilityContext ARC conversionObjective-C SCNetworkReachabilityContext ARC 转换
【发布时间】:2011-11-01 08:32:34
【问题描述】:

在将应用程序转换为使用自动引用计数时,我遇到了这个错误:

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

ARC 不允许将 Objective-C 指针隐式转换为“void *”

这会修复编译器错误,但会发出警告:

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

如何摆脱这个警告?

使用 'objc_objectptr_t' 类型的表达式(又名 'const void *')初始化 'void *' 会丢弃限定符

【问题讨论】:

  • 您是否尝试过将其强制转换为 void*?我不确定这是否是正确的解决方案。

标签: iphone objective-c ipad automatic-ref-counting


【解决方案1】:

您应该能够毫无问题地将 self (id) 转换为 void *。

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

【讨论】:

  • 谢谢!与桥接演员一起工作。 (__bridge void *)self
  • 这不是桥接调用,(void*)objc_unretainedPointer(self) 是更准确的方法。
  • 某人在这里 ARCified Apple 的可达性示例。 gist.github.com/1182373
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-07-22
  • 2012-01-12
相关资源
最近更新 更多