2014-06-26 24 views
5

trong đoạn mã sau tôi sử dụng CoreData để có được kết quả rõ rệt:Swift CoreData DictionaryResultType đúc

request.propertiesToFetch = NSArray(objects: "docID", "docName") 
    request.resultType = NSFetchRequestResultType.DictionaryResultType 
    request.returnsDistinctResults = true 

    var distinctResults: NSArray = context.executeFetchRequest(request, error: nil) 
    println(distinctResults) 

Đây là sản phẩm của println():

( { docID = 3; docName = "Dr. Goy"; }, { docID = 1; docName = "Dr. Bar"; }, { docID = 0; docName = "Dr. Foo"; }, { docID = 2; docName = "Mr. Baz"; } )

Đây là một Array với Từ điển - Làm thế nào tôi có thể đúc NSArray này thành một từ điển với một vòng lặp for

Nhờ sự giúp đỡ!

+0

Bạn muốn từ điển ở định dạng nào? – Jack

+0

Xin lỗi - Tôi muốn truyền tới Từ điển Maxim

Trả lời

4

NSArray có thể được sử dụng làm mảng, phức tạp hơn vì cấu trúc phản hồi của bạn không phải là Array<Dictionary<Int,String>>, nó thực sự là Array<Dictionary<String,Any>> trong đó Bất kỳ là chuỗi cho docName, nhưng int cho docID.

var dict = Dictionary<Int, String>() 
for nsdict in distinctResults as Array<NSDictionary> { 
    let docId = nsdict.valueForKey("docID") as? NSNumber as? Int 
    let docName = nsdict.valueForKey("docName") as? String 

    if docId && docName { 
     dict[docId!] = docName! 
    } 
} 
Các vấn đề liên quan