【发布时间】:2014-11-08 16:22:49
【问题描述】:
我有一个 Objective-C 类,它的方法带有块参数:
+ (void)getCurrentUserInfoWithToken:(NSString*)token completionHandler:(void (^)(NSDictionary* userData))handler
如您所见,该块具有 NSDictionary 参数。但是当我尝试快速转换此方法时,它会给出一个错误:“'[NSObject : AnyObject]' 与 'NSDictionary' 不同”。这是我的 Swift 代码:
ClockfaceAPI.getCurrentUserInfoWithToken(token, completionHandler: {
(userData : NSDictionary!) in
// block implementation goes here
})
我不知道如何解决它=/
【问题讨论】:
-
参见Using Swift with Cocoa and Objective-C: Working with Cocoa Data Types 的字典 部分,其中讨论了
NSDictionary引用被替换为[NSObject: AnyObject]Swift 字典的事实。正如 DPlusV 指出的那样,您应该只使用这个 Swift 字典和 Swift 字典模式,而不是NSDictionary模式。
标签: ios objective-c swift objective-c-blocks