无法将类型 'Swift._SwiftDeferredNSDictionary<Swift.String, Swift.Double>' (0x11b1b84f8) 的值转换为 'NSMutableDictionary'

Could not cast value of type 'Swift._SwiftDeferredNSDictionary<Swift.String, Swift.Double>' (0x11b1b84f8) to 'NSMutableDictionary'

我正在调用 Objective C、

中编写的方法
-(void)fetchWithDetails:(NSMutableDictionary*)details
                  success:(void (^)(id response))success
                  failure:(void (^)(NSError *error,NSString *userMessage))failure;

在 Swift 中,我将 objective C 方法调用为:

ULWebServiceStoreUtility.fetch(withDetails: parameters as! NSMutableDictionary , success: { (response) in ....}, failure: { error, userMessage in ...})

但我遇到崩溃错误:无法将类型 'Swift._SwiftDeferredNSDictionary' (0x11b1b84f8) 的值转换为 'NSMutableDictionary'

那么有人可以指导我如何在 Swift 中传递 NSMutableDictionary 吗?

NSDictionary 不能直接转换为 NSMutableDictionary。类型不同。

您可能需要这样的东西:

fetch(withDetails: NSMutableDictionary(dictionary: parameters), ...)