2016-06-30 18 views
2

setPropertiesToFetchを使用しているときにこのエラーが発生します。私のエンティティにinfo1とinfo2が存在するので、それは奇妙です。 propertiesToFetchラインなしコアデータのsetPropertiesToFetchにキーパスが渡されていません

let fetchRequest = NSFetchRequest() 
    let entityDescription = NSEntityDescription.entityForName("Table1", inManagedObjectContext: managedObjectContext) 
    fetchRequest.resultType = .DictionaryResultType 
    fetchRequest.returnsDistinctResults = true 

    fetchRequest.propertiesToFetch = ["info1", "info2"] 
    fetchRequest.includesSubentities = true 
    fetchRequest.entity = entityDescription 

    do { 
     let result = try managedObjectContext.executeFetchRequest(fetchRequest) 

     print(result) 

    } catch { 
     let fetchError = error as NSError 
     print(fetchError) 
    } 

私はこの出力を得る:

[{ 
    info1 = data1; 
    info2 = data2; 
    info3 = data3; 
}, { 
... 
}] 
+0

新しいフェッチリクエストAPIを使用すると、「let request = NSFetchRequest(entityName: "Table1") 'という名前の方が簡単になります。 – adonoho

答えて

3

エンティティpropertiesToFetchを使用する前に設定する必要があります。

fetchRequest.entity = entityDescription 
fetchRequest.propertiesToFetch = ["info1", "info2"] 
fetchRequest.includesSubentities = true 
+0

追加情報: 'propertiesToFetch'のドキュメントは、"この値を設定する前にフェッチリクエストのエンティティを設定する必要があります。そうしないと、NSFetchRequestはNSInvalidArgumentException例外をスローします。 " – Willeke

関連する問題