我今天才开始使用CocoaPods…首先,我添加了AFNetworking,它工作得很好……然后我需要SocketRocket…
然而,SRWebSocket。m抛出9个警告和6个错误后添加CocoaPods…错误是关于保留/发布不可用和ARC限制…警告都是:
'dispatch_get_current_queue' is deprecated: first deprecated in iOS 6.0
所以我猜我可能在设置这个过程中遗漏了一个步骤?
任何帮助都会很感激…
有几件事
-
你应该向SocketRocket提交一个pull request来删除
dispatch_get_current_queue
的使用,并将其更改为它被替换的任何东西,但这是一个警告,所以现在它不是一个很大的问题。 -
由于SocketRocket项目不支持/利用ARC(大概是因为它在其中有保留/释放调用),您将需要进入构建阶段>编译源并找到所有SocketRocket类并添加
-fno-objc-arc
编译器标志。这将让你编译,理想情况下,虽然SkyRocket Podspec应该更新,以指定ARC应该关闭。Podspec中的compiler_flags
属性应该包括-fno-objc-arc
,您应该提交拉请求以更新该属性。
编辑
有趣的是,SocketRocket宣称它使用ARC,我没有看到任何调用retain/release(在CFRetain/CFRelease之外,这在ARC中是很好的/必要的)。
我在SRWebSocket的源代码中达到了顶峰。对于podspec repo中列出的两个版本(0.1.0和0.2.0),都没有保留/发布调用。
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
,因此您需要删除这些调用或做一些项目