AFURLRequestSerialization中的自动合成错误(Xcode 6)

7
我该如何解决最新的AFNetworking在Xcode 6测试版中出现的有关流状态和流错误属性的警告:“自动属性综合不会综合,因为它是可读写的,但它将通过另一个属性只读地综合”?
以下是AFURLRequestSerialization.m文件中第733和734行的相关代码: https://github.com/AFNetworking/AFNetworking/blob/master/AFNetworking/AFURLRequestSerialization.m#L733
@interface AFMultipartBodyStream () <NSCopying>
@property (readwrite, nonatomic, assign) NSStreamStatus streamStatus;
@property (readwrite, nonatomic, strong) NSError *streamError;
2个回答

8
似乎xcode 6 beta附带的clang版本不允许在扩展中重写不是直接扩展原始类拥有的属性。
@property (readwrite, nonatomic, assign) NSStreamStatus streamStatus;
@property (readwrite, nonatomic, strong) NSError *streamError;

将其替换为:
@interface NSStream ()
@property (readwrite) NSStreamStatus streamStatus;
@property (readwrite, copy) NSError *streamError;
@end

解决了这个问题。

我在 AFNetworking 仓库中开了一个 拉取请求 来解决这个问题。

希望这可以帮到您。


2

我刚刚设置好了我的Xcode 6,可以用来开发iOS 7应用程序,并解决了我在使用AFNetworking时遇到的自动合成问题。我把构建工具改为 5.1,并将 7.1 SDK 移到 Xcode 6 中的 Developer/SDKs 目录下。问题(显然)是当明确地在 iOS 8 上工作时需要更改构建工具,但这比在 5 和 6 之间来回切换要好得多。

更改构建工具

  1. 打开 Xcode 偏好设置(cmd+,)
  2. 导航到“位置”选项卡
  3. 将“命令行工具”从 Xcode 6.0 更改为 Xcode 5.1.1

获取 iOS 7 SDK

  1. 打开终端
  2. 运行 cp /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS7.1.sdk /Applications/Xcode6-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS7.1.sdk

  3. 重新启动 Xcode

现在你应该能够将 iOS 7.1 设置为基本 SDK

这应该解决你的问题,直到所有这些库都更新为 iOS 8.0 和新的构建工具。


命令行工具实际上是做什么的?你明白这个解决方案太糟糕了吗? - Gargo

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接