0
In Swift 2.3 hatte ich den folgenden Code:des String aus dem Objekt in Swift 3
func getMyName() -> String {
return NSUserDefaults.standardUserDefaults().objectForKey("account")!["name"] as! String
}
Nun, ich versuche, diesen Code zu Swift 3, zu konvertieren, aber ich habe Schwierigkeiten mit diesem Fehler:
Type 'Any' has no subscript members
Hier ist mein migrierten Code:
func getMyName() -> String {
return UserDefaults.standard.object(forKey: "account")!["name"] as! String
}
@Leo Dabus Vielen Dank für Ihre Hilfe! Das funktioniert. Könnten Sie diesen Fehler bitte näher erläutern? Leider bekomme ich diesen Fehler auch für: 'data [0] [" fooBar "] as! String' ('data' ist ein Array). –
UserDefaults.standard.object (forKey :) gibt ein Objekt vom Typ Any zurück, das ein Wörterbuch sein kann oder nicht. Sie könnten objectForKey verwenden, aber Sie müssten von Any in [String: Any] umwandeln, um den Wörterbuch-Index verwenden zu können. –
Wenn Ihre Daten ein Array von Any '[Any]' sind, können Sie auf das erste Datenelement zugreifen und es von Any to Dictionary '[String: Any]' 'following' (data.first as? [String: Any]) umwandeln. ["fooBar"] als? Schnur ?? "" –