gpt4 book ai didi

ios - 无法在 Swift 中调用特定的 Objective-C 类方法

转载 作者:IT王子 更新时间:2023-10-29 05:19:20 24 4
gpt4 key购买 nike

我正在使用 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 自动桥接有关。有解决这个问题的想法吗?

enter image description here

更新:

这种方式不行:

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()

最佳答案

这是由于 XCode 6.1 中对基类的转换变得更加严格所致。所以,你需要向上转换,如下所示。

requestOperation.responseSerializer = AFImageResponseSerializer() as AFHTTPResponseSerializer

关于ios - 无法在 Swift 中调用特定的 Objective-C 类方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25899051/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com