• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

ios - CocoaPods 库中的强 dispatch_queue_t

[复制链接]
菜鸟教程小白 发表于 2022-12-12 13:10:20 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

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

在大多数情况下,我可以按照建议解决它 here :

#if OS_OBJECT_HAVE_OBJC_SUPPORT // == 1 not really needed
@property (nonatomic, strong) dispatch_queue_t loggerQueue; // An Objective-C object
#else
@property (nonatomic, assign) dispatch_queue_t loggerQueue; // A C pointer
#endif

这在手动创建静态库或将文件直接包含在项目中时有效。

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

Property with 'retain (or strong)' attribute must be of object type

我尝试比较 CocoaPods 和静态库之间生成的环境变量,但没有任何可疑之处。

现在我已经通过在使用 CocoaPods 构建时完全禁用 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



Best Answer-推荐答案


Seems就像旧的 CocoaPods 正在重新定义 OS_OBJECT_USE_OBJC 破坏 OS_OBJECT_HAVE_OBJC_SUPPORT

我们收到了 fixed通过检查 OS_OBJECT_USE_OBJC 并使用更新的 CocoaPods。

关于ios - CocoaPods 库中的强 dispatch_queue_t,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27267865/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap