NSDictionary dic;
NSMutableArray array;
//Objective-C Code.
array = [dic valueForKey:@"Table"]; //"Table" is key in dictionary
Làm cách nào để viết cùng một mã trong Swift?Giống như mục tiêu-C, cách viết "valueForKey" nhanh chóng?
NSDictionary dic;
NSMutableArray array;
//Objective-C Code.
array = [dic valueForKey:@"Table"]; //"Table" is key in dictionary
Làm cách nào để viết cùng một mã trong Swift?Giống như mục tiêu-C, cách viết "valueForKey" nhanh chóng?
Bạn tốt hơn sẽ có được ý tưởng về cách bạn có thể đối phó với Từ điển ở Swift
let employees = json["employees"]! as [[String : AnyObject]]
Bước tiếp theo là để lặp mảng lao động và in firstName và lastName.
Hãy nhớ rằng chúng tôi đang lặp lại một loạt các từ điển. Có nghĩa là để có được các giá trị String từ firstName và lastName chúng ta cần phải unwrap optionals đầu tiên:
for employee in employees {
let firstName = employee["firstName"]! as String
let lastName = employee["lastName"]! as String
println("employee: \(firstName) \(lastName)")
}
xây dựng, chạy và bạn sẽ thấy:
employee: John Doe
employee: Anna Smith
employee: Peter Jones
Vui lòng kiểm tra mã này. Nó có thể giúp ích cho những gì bạn cần.
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
}
Bạn có thể thử này
let array: AnyObject? = dic["Table"]
Bạn có thể thử
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
Chào mừng bạn đến với StackOverflow. Vui lòng thêm một số giải thích cho mã của bạn, cho biết cách giải thích vấn đề và lý do tại sao. Điều này sẽ giúp những người khác nhìn thấy câu trả lời của bạn trong tương lai và làm cho câu trả lời của bạn có giá trị hơn đối với StackOverflow. –
đơn giản ví dụ này.
(dicDetail.valueForKey("name") as! String)
Nhưng nó sẽ không hoạt động ngay bây giờ. Tôi nghĩ swift3 sẽ thay đổi cú pháp để nhận giá trị khóa từ Dictionary. – hilaj
Không có nhiều valueForKey:
trong Swift, nhưng có một cách để sử dụng map
để đạt được một tương tự, nếu không giống nhau, kết quả.
Nếu các đối tượng trong bộ sưu tập những bộ từ điển:
let array = dic.map { $0["table"] as? String }
Nếu các đối tượng trong bộ sưu tập là các đối tượng:
let array = dic.map{ $0.table }
Nếu bạn đang sử dụng loại bộ sưu tập Objective-C như NSDictionary
trong ví dụ của bạn , như những người khác đã nói, bạn vẫn có thể tiếp tục sử dụng valueForKey:
.
let array = dic.valueForKey("table")
Cảm ơn! Đó là câu trả lời hoàn hảo cho câu hỏi này ... –