NSDictionary dic;
NSMutableArray array;
//Objective-C Code.
array = [dic valueForKey:@"Table"]; //"Table" is key in dictionary
Wie schreibe ich gleichen Code in Swift?Wie objective-C, wie schreibt man "valueForKey" in swift?
NSDictionary dic;
NSMutableArray array;
//Objective-C Code.
array = [dic valueForKey:@"Table"]; //"Table" is key in dictionary
Wie schreibe ich gleichen Code in Swift?Wie objective-C, wie schreibt man "valueForKey" in swift?
Sie besser die Vorstellung davon, wie man mit Wörterbücher in Swift
let employees = json["employees"]! as [[String : AnyObject]]
Der nächste Schritt ist eine Schleife der Mitarbeiter Array und drucken Sie die Vor- und den Nachnamen umgehen können.
Denken Sie daran, dass wir eine Reihe von Wörterbüchern durchlaufen. Was bedeutet, dass, um den String-Wert von Vornamen und Nachnamen wir die optionals auspacken müssen, um zu bekommen zuerst:
for employee in employees {
let firstName = employee["firstName"]! as String
let lastName = employee["lastName"]! as String
println("employee: \(firstName) \(lastName)")
}
erstellen, ausführen und Sie sollen sehen:
employee: John Doe
employee: Anna Smith
employee: Peter Jones
Bitte überprüfen Sie diesen Code. Es könnte helfen, was Sie brauchen.
var dictData = Dictionary <String,Any>()
var arrDictData = Array<Any>()
// Will store value for key in dictionary.
func storeData (strName: String , strAge: String) {
dictData["name"]=strName
dictData["age"]=strAge
println("dictData: \(dictData)")
storeInArray(dictData)
}
// Will store value of dictionary in array.
func storeInArray (dict : Any) {
arrDictData.append(dict)
println("arrDictData: \(arrDictData)")
}
// Will return count of array.
func resultArray() -> Int {
println(arrDictData.count)
return arrDictData.count
}
// This function will return value in label.
func arrDictResult(dictKey: String, rowIndex: Int) -> String {
var dataTemp = arrDictData[rowIndex] as Dictionary <String,Any>
var val = dataTemp[dictKey] as String
return val
}
können Sie versuchen, diese
let array: AnyObject? = dic["Table"]
Sie dieses
var dict=NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions.MutableContainers, error: NSErrorPointer.null()) as NSDictionary
var temp=dict["contactname"] as String
var tem=dict.valueForKey("contactname") as String
Willkommen bei StackOverflow. Bitte fügen Sie Ihrem Code eine Erläuterung hinzu, die zeigt, wie das Problem gelöst wird und warum. Dies wird anderen helfen, die Ihre Antwort in der Zukunft sehen, und Ihre Antwort für StackOverflow wertvoller machen. –
Einfach zB versuchen.
(dicDetail.valueForKey("name") as! String)
Aber es wird jetzt nicht funktionieren. Ich denke, swift3 wird die Syntax ändern, um den Schlüsselwert vom Dictionary zu erhalten. – hilaj
Es ist nicht mehr valueForKey:
in Swift, aber es gibt einen Weg map
zu verwenden, um eine ähnliche, wenn nicht gleich, Ergebnis zu erzielen.
Wenn die Objekte in der Sammlung sind Wörterbücher:
let array = dic.map { $0["table"] as? String }
Wenn die Objekte in der Sammlung Objekte sind:
let array = dic.map{ $0.table }
Wenn Sie Objective-C Sammlung Typen wie NSDictionary
in Ihrem Beispiel verwenden , dann wie andere gesagt haben, können Sie weiterhin valueForKey:
verwenden.
let array = dic.valueForKey("table")
Danke! Es ist die perfekte Antwort für diese Frage ... –