我今天才刚开始使用CocoaPods ...
首先,我添加了AFNetworking,效果很好...然后我需要SocketRocket ...
但是,SRWebSocket.m与CocoaPods添加后会引发9条警告和6条错误。
这些错误是关于保留/释放不可用以及ARC限制...
警告都是:
'dispatch_get_current_queue' is deprecated: first deprecated in iOS 6.0
所以我想我可能会以某种方式缺少设置此步骤的步骤?
任何帮助,将不胜感激...
最佳答案
所以几件事
您可能应该向SocketRocket提交拉取请求,以删除dispatch_get_current_queue
的用法并将其更改为替换为它的任何内容,但这是一个警告,因此现在并不是一个大问题。
由于SocketRocket项目不支持/利用ARC(大概是因为其中包含保留/释放调用),因此您需要进入“构建阶段”>“编译源代码”,并找到所有SocketRocket类并添加-fno-objc-arc
编译器标志。理想情况下,这可以让您进行编译,尽管应该更新SkyRocket Podspec以指定应关闭ARC。 Podspec中的compiler_flags
属性应包含-fno-objc-arc
,您应提交拉取请求以进行更新。
编辑
有趣的是,SocketRocket宣称它使用ARC,但我看不到任何保留/释放调用(在CFRetain / CFRelease之外,这在ARC中是很好的/必需的)。
在podspec存储库中列出的两个版本(0.1.0和0.2.0)中,我都在SRWebSocket.m的源代码上达到了顶峰,它们都没有保留/释放调用。
0.2.0:https://github.com/square/SocketRocket/blob/v0.2.0/SocketRocket/SRWebSocket.m
0.1.0:https://github.com/square/SocketRocket/blob/82c9f8938f8b9b7aa578866cb7ce56bc11e52ced/SocketRocket/SRWebSocket.m
奇怪??您确定会收到关于SRWebSocket.m的错误吗?
编辑2
经过进一步挖掘和评论中提到。在定位iOS 6.0+或OS X 10.8+时,不允许使用dispatch_release
和dispatch_retain
,因此您将需要删除这些调用或执行项目中pull request 55中建议的操作