像Objective-C一样,如何在swift中编写“valueForKey”?

NSDictionary dic; NSMutableArray array; //Objective-C Code. array = [dic valueForKey:@"Table"]; //"Table" is key in dictionary 

如何在Swift中编写相同的代码?

你可以试试这个

 let array: AnyObject? = dic["Table"] 

没有更多的valueForKey:在Swift中,但有一种方法可以使用map来实现类似的,如果不是相同的结果。

如果集合中的对象是字典:

 let array = dic.map { $0["table"] as? String } 

如果集合中的对象是对象:

 let array = dic.map{ $0.table } 

如果您在示例中使用Objective-C集合types(如NSDictionary ,则与其他人一样,您仍然可以继续使用valueForKey:

 let array = dic.valueForKey("table") 

简单的例如。

 (dicDetail.valueForKey("name") as! String) 

你可以试试这个

 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 

你会更好地了解如何处理Swift中的字典

 let employees = json["employees"]! as [[String : AnyObject]] 

下一步是循环employees数组并打印firstName和lastName。

请记住,我们正在循环一系列字典。 这意味着为了从firstName和lastName获取string值,我们需要首先解开optionals:

 for employee in employees { let firstName = employee["firstName"]! as String let lastName = employee["lastName"]! as String println("employee: \(firstName) \(lastName)") } 

build立,运行,你应该看到:

 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 }