あなたの結果を得るには、あなたの述語で 'in'演算を使うべきだと思います。これにより、データベースを活用して比較を実行できます。比較するために10,000レコードすべてを取り戻すのではなく、比較を実行します。 - 私はスウィフト3.0互換性のあるコードをターゲットにしています - SWIFTはあなたが後にしている何だったかどうかわからない
// Assuming that arrayName is your existing array of values to match, that
// EntityName is the object in CoreData that you’re looking at, and context
// is your moc
var newArray: [String] = []
let fetchRequest = NSFetchRequest<EntityName>(entityName: "EntityName")
fetchRequest.predicate = NSPredicate(format: "title in %@", arrayName)
do {
result = try context.fetch(fetchRequest)
for element in result {
newArray.append(element.title)
}
} catch {
… manage any errors …
}
注:あなたがこのアプローチを取る場合は、あなたのコードは次のようになります。
ありがとうございました。正確には、私はテーブル全体を引っ張ってはいけません。コアデータはすべての作業を行う必要があります。このソリューションは最適ですか?それ以上のアイデアがなければ、これを答えとしてチェックします。 – elektricni
まだタイトル属性がない場合は、title属性にインデックスを追加する価値があります。 – pbasdf
pbasdfによって提案されたインデックスは、あなたのアプリでのタイトルの使用に応じて役に立つかもしれませんが、そうでなければ私はこのアプローチの効率を高めることに何も気づいていません。 –