Swift错误:' manager()'不可用:使用对象构造' AFHTTPRequestOperationManager()'

时间:2015-01-13 15:04:52

标签: objective-c swift afhttprequestoperation

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

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;

我收到了这些错误消息:

  

错误:&#39;经理()&#39;不可用:使用对象构造   &#39; AFHTTPRequestOperationManager()&#39;
错误:&#39;() - &gt;   AFHTTPRequestOperationManager&#39!;没有名为的成员   &#39; responseSerializer&#39;
错误:&#39;() - &gt; AFHTTPRequestOperationManager&#39!;   没有名为&#39; requestSerializer&#39;的成员
错误:&#39;() - &gt;   AFHTTPRequestOperationManager&#39!;没有名为的成员   &#39; completionQueue&#39;
错误:函数产生预期类型   &#39;!AFHTTPRequestOperationManager&#39 ;;你的意思是用&#39;()&#39;?

来称呼它

1 个答案:

答案 0 :(得分:9)

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

var manager = AFHTTPRequestOperationManager()