【发布时间】:2014-09-17 19:44:32
【问题描述】:
我正在使用AFNetworking 2.3.1:
let request = NSURLRequest(URL: NSURL(string: "http://xxx.xxx.xxx/xxx")!)
var requestOperation = AFHTTPRequestOperation(request: request)
requestOperation.responseSerializer = AFImageResponseSerializer()
我在使用 Swift 1.1(Xcode 6.1 beta 2 build 6A1030)的第三行出现错误:
'init()' is unavailable: superseded by import of -[NSObject init]
这一行在 Objective-C 上应该是这样的:
requestOperation.responseSerializer = [AFImageResponseSerializer serializer];
我认为这个问题与来自 Objective-C 的 Swift 自动桥接有关。有什么想法可以解决这个问题吗?
更新:
这种方式行不通:
AFImageResponseSerializer.serializer()
而且错误描述非常好:
'serializer()' is unavailable: use object construction 'AFHTTPResponseSerializer()'
更新 2:
现在我找到了一个临时解决方案。我将此代码添加到桥接头:
@interface AFImageResponseSerializer (CustomInit)
+ (instancetype)sharedSerializer;
@end
以及添加到“bridging-header”实现文件的代码:
@implementation AFImageResponseSerializer (CustomInit)
+ (instancetype)sharedSerializer {
return [AFImageResponseSerializer serializer];
}
@end
并像这样使用它:
AFImageResponseSerializer.sharedSerializer()
【问题讨论】:
-
为我工作!谢谢。另见stackoverflow.com/questions/24093693/…
标签: ios objective-c swift