Так что я создаю это приложение с помощью CoreData.Запрос данных ядра с предикатами
Два объекта, которые у меня есть, являются списками и элементами. У них есть много отношений, то есть список может иметь несколько элементов.
Например: List1 имеет товары: item1, item2
Я написал код для сохранения элементов в конкретном списке, но я имею трудное время на выяснение того, как извлечь и proccess на элементы из конкретный список.
То, что я сделал до сих пор выглядит следующим образом
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")
}
}
}
}
Эта функция возвращает NSSet, который предполагают, чтобы содержать все элементы этого конкретного списка.
модельМои данные:
Мои вопросы:
A. Является ли способ, которым я закодированы функции getItemsOnList() правильно? Или есть что-то, что я делаю неправильно.
B. Учитывая, что код верен, и NSSet, который я получаю, соответствует всем элементам, как бы получить каждый элемент в этом NSSet, чтобы я мог поместить его в TableView.
вы можете использовать [MagicalRecord] (https://github.com/magicalpanda/MagicalRecord), чтобы легко справляться с основными задачами данных. после извлечения элементов у вас есть массив ** Items **. вы можете использовать этот массив в качестве источника данных для представления таблицы. кроме этого вы можете [создать Контроллер получаемых результатов] (https://developer.apple.com/library/content/documentation/Cocoa/Conceptual/CoreData/nsfetchedresultscontroller.html) для заполнения и обновления таблицы. – Mohammadalijf