我有这个快速的代码,我认为应该可以工作,但它不能处理客观的静态字段。我试图添加"()"多个地方,但没有任何作用。
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;?
答案 0 :(得分:9)
当Objective-C导入Swift时,正如您在此处使用AFNetworking一样,可识别的工厂方法将转换为简单的初始化程序。在这种情况下,这意味着(正如@Martin指出的那样)你应该使用那个形式:
var manager = AFHTTPRequestOperationManager()