我最近一直在尝试弄清楚如何像以前在 Objective-c 中那样快速初始化字典:
NSMutableDictionary *loginDictionary = [[NSMutableDictionary alloc] initWithObjects:@[UsernameTextfield.text,PasswordTextfield.text] forKeys:@[@"username",@"password"];
我尝试用 Swift 编写它:
let userDictionary = NSMutableDictionary.init(object: [usernameTextField.text,passwordTextField.text], forKey: ["username","password"])
但是我得到一个错误:
Contextual type AnyObject cannot be used with array literal.
最佳答案
首先,您必须使用相同的方法,使用objects
和forKeys
(注意复数形式)。
然后你需要告诉编译器每个对象的类型,在你的例子中它是来自可选文本标签的字符串,所以你可以这样做:
if let name = usernameTextField.text as? String, let pass = passwordTextField.text as? String {
let userDictionary = NSMutableDictionary(objects: [name, pass], forKeys: ["username", "password"])
}
关于ios - 具有多个对象和键的 NSDictionary init,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33754892/