下标使用不明确 Swift

Ambiguous use of Subscript Swift

我在获取 NSUserdefaults 中的字典字符串时遇到问题,这是我的代码。我不知道问题是什么:

static func getItemInUserDefaultsDictionary(key: String,dictionaryName: String) -> String {
    return defaults.objectForKey(key)![dictionaryName] as? String ?? ""
}

试试这个

static func getItemInUserDefaultsDictionary(key: String,dictionaryName: String) -> 字符串 { return (defaults.objectForKey("key")![dictionaryName] as?String)! }

编译器不知道 objectForKey 的正确类型,因为它 returns AnyObject

你必须转换类型:

static func getItemInUserDefaultsDictionary(key: String,dictionaryName: String) -> String {
    guard let dictionary = defaults.objectForKey(key) as? [String:AnyObject] else { return "" }
    return dictionary[dictionaryName] as? String ?? ""
}