将 Swift 中的 (Any hashable Any) 中的错误转换为 Objective C 中的 NSMutableDictionary
Cast error from (Any hashable Any) in Swift to NSMutableDictionary in Objective C
我有一个 Objective C 方法,它期望传递给它的参数是 NSMutableDictionary 类型。我有另一个 Swift 文件和一个 Swift 方法,我需要从中将类型为 (AnyHashable: Any)() 的结构传递给我需要相同的 Objective C 方法在 NSMutableDictionary 格式。我试过铸造和其他方法,但我找不到答案。
//Objective C 方法属于 UserLogin class
-(void)loginWithUserData:(NSMutableDictionary *)userLoginData{
// Do something
//Get data from Swift file here
}
//Swift 函数,我需要从中调用 Objective C 方法并传递数据
var data = [AnyHashable: Any]()
var ObjClass = UserLogin()
ObjClass.loginWithUserData(userLoginData: data)
这应该如何转换为?我正在使用 Swift 3.
Swift 字典是不可变的,因此您不能简单地将 Swift 字典转换为 NSMutableDictionary
.
理想情况下,loginWithUserData
会期望 NSDictionary
,而不是 NSMutableDictionary
;改变字典的功能不是好的设计。如果参数类型是 NSDictionary
那么你仍然可以传递 NSMutableDictionary
.
如果您无法更改 Objective-C 函数,那么您需要在 Swift 中创建一个 NSMutableDictionary
:
var data = NSMutableDictionary()
我有一个 Objective C 方法,它期望传递给它的参数是 NSMutableDictionary 类型。我有另一个 Swift 文件和一个 Swift 方法,我需要从中将类型为 (AnyHashable: Any)() 的结构传递给我需要相同的 Objective C 方法在 NSMutableDictionary 格式。我试过铸造和其他方法,但我找不到答案。
//Objective C 方法属于 UserLogin class
-(void)loginWithUserData:(NSMutableDictionary *)userLoginData{
// Do something
//Get data from Swift file here
}
//Swift 函数,我需要从中调用 Objective C 方法并传递数据
var data = [AnyHashable: Any]()
var ObjClass = UserLogin()
ObjClass.loginWithUserData(userLoginData: data)
这应该如何转换为?我正在使用 Swift 3.
Swift 字典是不可变的,因此您不能简单地将 Swift 字典转换为 NSMutableDictionary
.
理想情况下,loginWithUserData
会期望 NSDictionary
,而不是 NSMutableDictionary
;改变字典的功能不是好的设计。如果参数类型是 NSDictionary
那么你仍然可以传递 NSMutableDictionary
.
如果您无法更改 Objective-C 函数,那么您需要在 Swift 中创建一个 NSMutableDictionary
:
var data = NSMutableDictionary()