我今天刚刚开始使用CocoaPods ...... 首先,我添加了AFNetworking,它运行良好......然后我需要SocketRocket ......
但是,在添加CocoaPods后,SRWebSocket.m会抛出9个警告和6个错误... 错误是关于保留/释放不可用和ARC限制...... 警告都是:
'dispatch_get_current_queue' is deprecated: first deprecated in iOS 6.0
所以我猜我可能会错过一个设置它的步骤吗?
任何帮助将不胜感激......
答案 0 :(得分:2)
所以有几件事
您应该向SocketRocket提交拉取请求,以删除dispatch_get_current_queue
的使用情况并将其更改为替换后的内容,但这是一个警告,因此它不是一个大问题现在。
由于SocketRocket项目不支持/使用ARC(可能因为它中有保留/释放调用),因此您需要进入Build Phases>编译源并找到所有SocketRocket类并添加-fno-objc-arc
编译器标志。这将允许您编译,理想情况下应更新SkyRocket Podspec以指定应关闭ARC。 Podspec中的compiler_flags
属性应包含-fno-objc-arc
,您应提交拉取请求以更新该属性。
修改强>
有趣的是SocketRocket吹嘘它使用ARC而且我没有看到任何保留/释放的调用(在CFRetain / CFRelease之外,这在ARC中很好/必要)。
我在SRWebSocket.m的源代码中找到了一个高峰,因为podspec repo(0.1.0和0.2.0)中列出的两个版本都没有保留/释放调用。
0.2.0:https://github.com/square/SocketRocket/blob/v0.2.0/SocketRocket/SRWebSocket.m
奇怪??您确定收到有关SRWebSocket.m的错误吗?
编辑2
进一步挖掘后,如评论中所述。在定位iOS 6.0+或OS X 10.8+时,不允许dispatch_release
和dispatch_retain
,因此您需要删除这些调用或执行项目pull request 55中建议的内容