Ich versuche, einem Wörterbuch zwei Objekte hinzuzufügen, bevor es an eine Post-Klasse für einen Foto-Feed gesendet wird. Das ist was ich habe, ich benutze Firebase.Hinzufügen von Objekten zu einem Wörterbuch
if let postDict = snap.value as? Dictionary<String, AnyObject> {
for(name, value) in postDict {
if name == "postedBy" {
DataService.ds.REF_USERS.child(value as! String).observeSingleEventOfType(.Value, withBlock: { (friendDictionary) in
let userDict = friendDictionary.value as! NSDictionary
value.setValue(userDict.objectForKey("username"), forKey: "username")
value.setValue(userDict.objectForKey("profileThumbUrl"), forKey: "profileThumbUrl")
self.collectionView?.reloadData()
})
}
}
let key = snap.key
let post = Post(postKey: key, dictionary: postDict)
self.posts.append(post)
Das Problem dabei ist, dass, wenn ich Benutzer setValue versuchen() Benutzernamen und profileThumbUrl an Wert hinzufügen in postDict ich den Fehler: „diese Klasse nicht Schlüsselwert ist Codierung-konform für den Schlüssel Benutzernamen ein. " Ich habe diese Art von Methode in anderen Situationen verwendet, also weiß ich nicht, ob es daran liegt, dass ich "If Let" am Anfang verwende, weil ich das normalerweise nicht verwende. Irgendwelche Ideen?
Was ist der Typ für 'value'? – rmaddy
Haben Sie versucht, das if let nicht zu verwenden? –
Ich denke, Wert ist anyobject –