Ios CocoaPods库中的强调度队列
在可能使用iOS 5.x/OS x 10.7部署目标或更新的部署目标构建的库中,我在正确定义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定义。但
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