【问题标题】:Cocoapods: How to enable OS_OBJECT_USE_OBJC? (GCD queues as proper ObjC objects)Cocoapods:如何启用 OS_OBJECT_USE_OBJC? (GCD 队列作为适当的 ObjC 对象)
【发布时间】:2014-10-13 12:08:53
【问题描述】:

OS_OBJECT_USE_OBJC 标志表示 GrandCentralDispath 队列(可能还有其他 OS 对象?)完全符合 Objective-C 对象(因此它们由 ARC 等管理)

如果我这样做

#if OS_OBJECT_USE_OBJC
    NSLog(@"OS_OBJECT_USE_OBJC=1")
#else
    NSLog(@"OS_OBJECT_USE_OBJC=0");
#endif

AppDelegate 我看到 OS_OBJECT_USE_OBJC=1。但是,在任何 Pod 的代码中执行相同操作都会显示 OS_OBJECT_USE_OBJC=0。我的 Podfile 的第一行是

platform :ios, '7.0'

并省略该行似乎没有什么不同。我的 Base SDK 是 iOS 8.0,我的 Deployment Target 是 iOS 7.0。

如何为我的 Pod“启用”OS_OBJECT_USE_OBJC

另外,有没有官方文档解释OS_OBJECT_USE_OBJC?我找不到。

【问题讨论】:

  • 想解释一下否决票?我认为这是一个合理的问题。
  • 您是否尝试过指定deployment_target?在 Cocoapods 文档中,所有关于OS_OBJECT_USE_OBJC 的讨论都与deployment_target 设置相关联,而不是platform 设置。
  • 我认为deployment_target 仅在 Podspecs 中使用,不能在 Podfile 中使用。顺便说一句,我的 pod 项目目标有 7.0 作为Deployment target。我认为围绕构建设置必须有一个额外的设置选择退出 GDC ObjC 对象。
  • 报告了这个 Cocoapods 错误here
  • 我也是。为什么投反对票?

标签: ios objective-c automatic-ref-counting grand-central-dispatch cocoapods


【解决方案1】:

在其.podspec 文件中指定部署目标为 OS_OBJECT_USE_OBJC = 0,而不管使用该 pod 的应用程序上的Deployment Targetset。

请参阅herehere 了解更多信息。

【讨论】:

  • 对我来说不幸的是,即使对于规格的部署目标设置为 iOS 6.0 或更高版本的 Pod,它也设置为 0。这似乎发生在我所有的 pod 上。
猜你喜欢
  • 2016-06-04
  • 2013-04-29
  • 2012-09-26
  • 2016-02-01
  • 1970-01-01
  • 1970-01-01
  • 2012-12-17
  • 2013-10-11
  • 2019-08-21
相关资源
最近更新 更多