2016-09-20 7 views
2

NSFetchRequestを使用する場合、Swift 3ではNSFetchRequestResultを指定する必要があります。しかし、どのようにプロパティ値の配列を取得するには?このようなものを使用すると、フェッチ要求を実行しようとすると例外が発生します。 error: -executeRequest: encountered exception = The database appears corrupt. propertiesToFetchで行を削除してもエラーは発生しませんが、プロパティではなくオブジェクトの配列が取得されます。Swift 3. NSFetchRequestプロパティToFetch

+0

ああ、申し訳ありません。問題は 'fetchRequest.resultType = .dictionaryResultType'を設定するのを忘れていたことです –

答えて

0

NSFetchRequestにresultTypeを設定するのを忘れました。

let fetchRequest = NSFetchRequest<MyClass>(entityName: "MyClass") 
fetchRequest.propertiesToFetch = ["myAttributeName"] 
fetchRequest.resultType = .dictionaryResultType 
0

実際には、ほとんどの場合、プロパティではなくオブジェクトの配列を使用する方がよいでしょう。コアデータは、ストアへのラウンドトリップの最適なロードバランシングを管理します。あなたがおそらく最も心配しているもの(メモリ、パフォーマンス、データアクセス時間)は本当に保証されません。

また、よりクリーンで安全で簡潔なコードになります。

関連する問題