Ios CocoaPods库中的强调度队列

Ios CocoaPods库中的强调度队列,ios,objective-c,grand-central-dispatch,cocoapods,Ios,Objective C,Grand Central Dispatch,Cocoapods,在可能使用iOS 5.x/OS x 10.7部署目标或更新的部署目标构建的库中,我在正确定义dispatch\u queue\t属性时遇到问题 在大多数情况下,我可以按照建议解决这个问题: 当手动创建静态库或将文件直接包含在项目中时,此选项有效 但是,当将此代码添加到CocoaPods库时,它会因iOS 6+/OS X 10.8+部署目标而中断。 CocoaPods正确设置部署目标,编译器设置OS\u OBJECT\u HAVE\u OBJC\u SUPPORT==1,并选择strong定义。但

在可能使用iOS 5.x/OS x 10.7部署目标或更新的部署目标构建的库中,我在正确定义
dispatch\u queue\t
属性时遇到问题

在大多数情况下,我可以按照建议解决这个问题:

当手动创建静态库或将文件直接包含在项目中时,此选项有效

但是,当将此代码添加到CocoaPods库时,它会因iOS 6+/OS X 10.8+部署目标而中断。 CocoaPods正确设置部署目标,编译器设置
OS\u OBJECT\u HAVE\u OBJC\u SUPPORT==1,并选择
strong
定义。但是,我发现了iOS 5.x/OS x 10.7错误:

具有“retain(或strong)”属性的属性必须是对象类型

我试着比较CoCoapod和静态库之间产生的环境变量,但没有任何可疑之处

目前,我已经通过在使用CoCoapod构建时完全禁用
strong
定义对其进行了修补:

#if OS_OBJECT_HAVE_OBJC_SUPPORT && !defined(COCOAPODS)
@property (nonatomic, strong) dispatch_queue_t loggerQueue; // Always disabled
#else
@property (nonatomic, assign) dispatch_queue_t loggerQueue;
#endif
像以前的CoCoapod一样,它重新定义了
OS\u对象\u使用\u对象
打破了
OS\u对象\u拥有\u对象支持

我们通过检查
OS\u OBJECT\u USE\u OBJC
并使用更新的CocoaPods来实现这一点

#if OS_OBJECT_HAVE_OBJC_SUPPORT && !defined(COCOAPODS)
@property (nonatomic, strong) dispatch_queue_t loggerQueue; // Always disabled
#else
@property (nonatomic, assign) dispatch_queue_t loggerQueue;
#endif