4

我有这个我认为应该可以工作的快速代码,但它不能处理客观的 c 静态字段。我试图在多个地方添加“()”,但没有任何效果。

func AFHTTPRequestOperationManagerDispatchOnMainQueue(mainQueue: Bool) -> AFHTTPRequestOperationManager {
    var manager = AFHTTPRequestOperationManager.manager
    manager.responseSerializer = AFJSONResponseSerializer(readingOptions: NSJSONReadingOptions.AllowFragments)
    manager.requestSerializer = AFJSONRequestSerializer(readingOptions: NSJSONReadingOptions.AllowFragments)
    if (!mainQueue) {
        manager.completionQueue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0)
    }
    return manager;
}

字段和属性如下所示:

+ (instancetype)manager;
@property (nonatomic, strong) AFHTTPRequestSerializer <AFURLRequestSerialization> * requestSerializer;
@property (nonatomic, strong) AFHTTPResponseSerializer <AFURLResponseSerialization> * responseSerializer;

我收到这些错误消息:

错误:“manager()”不可用:使用对象构造“AFHTTPRequestOperationManager()”
错误:“() -> AFHTTPRequestOperationManager!” 没有名为“responseSerializer”的成员
错误:“()-> AFHTTPRequestOperationManager!” 没有名为“requestSerializer”的成员
错误:“()-> AFHTTPRequestOperationManager!” 没有名为“completionQueue”的成员
错误:函数产生预期类型“AFHTTPRequestOperationManager!”;你的意思是用'()'来称呼它吗?

4

1 回答 1

9

当将 Objective-C 导入 Swift 时,正如您在此处使用 AFNetworking 所做的那样,可识别的工厂方法将转换为简单的初始化程序。在这种情况下,这意味着(正如@Martin 指出的那样)您应该使用该表单:

var manager = AFHTTPRequestOperationManager()
于 2015-01-13T15:52:53.017 回答