したがって、CoreDataを使用してこのアプリケーションを構築しています。述語でコアデータを照会する
私が持っている2つのエンティティは、リストとアイテムです。それらは多くの関係を有する、すなわち、リストは複数のアイテムを有することができる。例えば
:List1をはアイテムを持っている:ITEM1、
ITEM2私は特定のリスト内の項目を保存するが、私はからアイテムを取得し、proccessする方法を考え出すに困難な時間を過ごしていますためのコードを書かれています特定のリスト。この関数は、その特定のリスト内のすべての項目が含まれていると仮定されNSSetを返し
func getItemsOnList(){
let app = UIApplication.shared.delegate as! AppDelegate
let context = app.persistentContainer.viewContext
//fetchRequest to get the List
let fetchRequest = NSFetchRequest<NSFetchRequestResult>(entityName: "List")
let predicate = NSPredicate(format: "title == %@", listName)
fetchRequest.returnsObjectsAsFaults = false
fetchRequest.predicate = predicate
if let fetchResults = try? context.fetch(fetchRequest){
if fetchResults.count > 0 {
for listEntity in fetchResults {
let list = listEntity as! List
print(list.title as Any)
itemsOnList = list.contains!
print(itemsOnList)
print("The list with name:\(list.title)has \(itemsOnList.count) items")
}
}
}
}
を次のように私がこれまで行ってきた何
です。
マイデータモデルは次のとおりです。
私の質問は以下のとおりです。
A.私は正しいgetItemsOnList()関数をコード化された方法ですか?それとも私が間違っていることがありますか?
B.コードが正しいことと、取得するNSSetがすべてのアイテムで正しいとすれば、NSViewの各アイテムをどのように取得してTableViewに置くことができますか?
[MagicalRecord](https://github.com/magicalpanda/MagicalRecord)を使用すると、簡単にコアデータタスクを処理できます。アイテムを取得した後、**アイテム**の配列があります。この配列をテーブルビューのデータソースとして使用できます。それ以外の場合は、[Fetched Results Controllerを作成する](https://developer.apple.com/library/content/documentation/Cocoa/Conceptual/CoreData/nsfetchedresultscontroller.html)を使用して、go tableviewを読み込んで更新することができます。 – Mohammadalijf