gpt4 book ai didi

ios - Swift改变了一个 block 的参数类型,这也是Objective-C方法的参数

转载 作者:行者123 更新时间:2023-11-29 02:31:26 26 4
gpt4 key购买 nike

我有一个 Objective-C 类,其中包含带有 block 参数的方法:

+ (void)getCurrentUserInfoWithToken:(NSString*)token completionHandler:(void (^)(NSDictionary* userData))handler

如您所见,该 block 具有 NSDictionary 参数。但是当我尝试快速转换这个方法时,它给出了一个错误:“'[NSObject : AnyObject]' is not identical to 'NSDictionary'”。这是我的 Swift 代码:

ClockfaceAPI.getCurrentUserInfoWithToken(token, completionHandler: {
(userData : NSDictionary!) in
// block implementation goes here
})

我不知道怎么解决=/

最佳答案

这是有道理的,因为您的 NSDictionary* 被解释为 [NSObject:AnyObject]

您不必指定类型。例如。只说 userData 而没有 : NSDictionary! 就可以了。 Swift 会根据声明自动推断类型。

ClockFaceAPI.getCurrentUserInfoWithToken(token, completionHandler: { (dict) -> Void in
for (k, v) in dict {
println(k)
println(v)
}
})

关于ios - Swift改变了一个 block 的参数类型,这也是Objective-C方法的参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26819290/

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