2014-06-26 15 views
5

w następujący kod za pomocą CoreData uzyskać różne rezultaty:Swift CoreData DictionaryResultType odlew

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

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

to jest wyjście println():

( { docId = 3; DOCNAME = "dr goj"; } { docId = 1; DOCNAME = "dr bar"; } { docID = 0; docName = "Dr. Foo"; }, { docID = 2; docName = "Mr. Baz"; } )

To Array ze słownikami - Jak mogę rzucić ten NSArray do słownika z pętli for

Dzięki za pomoc!

+0

Jaki format ma być słownik? – Jack

+0

Przepraszamy - chcę przesłać do słownika Maxim

Odpowiedz

4

NSArray może być używany jako tablica, jest to bardziej skomplikowane, ponieważ struktura twojej odpowiedzi nie jest Array<Dictionary<Int,String>>, to naprawdę Array<Dictionary<String,Any>> gdzie Dowolny jest ciągiem dla nazwy pliku, ale int dla 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! 
    } 
}