我们迅速的桥接头进口AFNetworking,编译和运行良好;但在调试器中,
po 爆炸抱怨AFNetworking中的几个区域声明dispatch_queue_t属性很强,只要你没有明确地将OS_OBJECT_HAVE_OBJC_SUPPORT定义为0
error: property with 'retain (or strong)' attribute must be of object type
@property (nonatomic, strong) dispatch_queue_t completionQueue;
^
为了确认我的担忧,我将#define OS_OBJECT_HAVE_OBJC_SUPPORT 1放在桥接标题中:
error: Error in auto-import:
failed to get module 'App' from AST context:
/Users/user/oDevelop/App/App-Bridging-Header.h:7:9: warning: 'OS_OBJECT_HAVE_OBJC_SUPPORT' macro redefined
#define OS_OBJECT_HAVE_OBJC_SUPPORT 1
^
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator8.1.sdk/usr/include/os/object.h:58:9: note: previous definition is here
#define OS_OBJECT_HAVE_OBJC_SUPPORT 0
那为什么会这样呢?我现在已经两次验证我们的项目和部署目标是7.0,并且Pod项目和EVERY Pod目标都将部署目标设置为6.0。我尝试手动将AFNetworking pod目标更改为7.0,当然没有效果。
我也尝试过模拟器(8.1)和设备(运行8.0.2)。
答案 0 :(得分:2)
我有完全相同的问题,我认为我有一个潜在的解决方案:桥接目前似乎不适合使用调度对象(适用于Swift 1.1,Xcode 6.1和更早版本)。
从iOS 6.0开始,调度对象是Objective-C对象(参见Does ARC support dispatch queues?),因此您可以从
更改每个对象@property (nonatomic, strong) dispatch_queue_t completionQueue;
进入:
@property (nonatomic, strong) id completionQueue;
对AFNetworking中的所有调度对象执行此操作,并在控制台中尝试po之后,它看起来很不错。我不知道这可能导致AFNetworking的任何潜在问题。