NSDictionary dic;
NSMutableArray array;
//Objective-C Code.
array = [dic valueForKey:@"Table"]; //"Table" is key in dictionary
Как написать такой же код в Swift?Как объектив-C, как написать «valueForKey» в swift?
NSDictionary dic;
NSMutableArray array;
//Objective-C Code.
array = [dic valueForKey:@"Table"]; //"Table" is key in dictionary
Как написать такой же код в Swift?Как объектив-C, как написать «valueForKey» в swift?
Вы лучше получить представление о том, как вы можете иметь дело с словарях в Swift
let employees = json["employees"]! as [[String : AnyObject]]
Следующий шаг заключается в цикле массив сотрудников и печати ПгвЬЫате и LastName.
Имейте в виду, что мы зацикливаем массив словарей. Это означает, что для того, чтобы получить значение строки из ПгвЬЫате и LastName нам нужно распаковывать УСТРОЙСТВА первым:
for employee in employees {
let firstName = employee["firstName"]! as String
let lastName = employee["lastName"]! as String
println("employee: \(firstName) \(lastName)")
}
сборки, запуск и вы должны увидеть:
employee: John Doe
employee: Anna Smith
employee: Peter Jones
Пожалуйста, проверьте этот код. Это может помочь вам в том, что вам нужно.
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
}
Вы можете попробовать это
let array: AnyObject? = dic["Table"]
Вы можете попробовать это
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
Добро пожаловать в StackOverflow. Пожалуйста, добавьте некоторое объяснение в свой код, показывая, как он решает проблему и почему. Это поможет другим, кто увидит ваш ответ в будущем, и сделает ваш ответ более ценным для StackOverflow. –
Простой, например.
(dicDetail.valueForKey("name") as! String)
Но теперь это не сработает. Я думаю, что swift3 изменит синтаксис для получения ключевого значения из словаря. – hilaj
Там больше нет valueForKey:
в Swift, но есть способ использовать map
для достижения такой же, если не такие же, результат.
Если объекты в коллекции словарей:
let array = dic.map { $0["table"] as? String }
Если объекты в коллекции являются объекты:
let array = dic.map{ $0.table }
Если вы используете типы коллекций Objective-C, как NSDictionary
в вашем примере , то, как говорили другие, вы все равно можете использовать valueForKey:
.
let array = dic.valueForKey("table")
Спасибо! Это прекрасный ответ на этот вопрос ... –