Я использую основные данные, чтобы увидеть, видели ли пользователи в представлении таблицы раньше пользователя. Способ, которым я это делаю, - сохранить сообщение Id в Core Data при первом просмотре, а затем запустить запрос выборки, когда я обновляю представление таблицы, чтобы увидеть, есть ли запись в постоянной памяти с тем же идентификатором. Теперь я хочу знать, как я должен наиболее эффективно реализовать свой запрос на выборку, исходя из того, сколько времени это занимает. Должен ли я запускать запрос, который возвращает все сохраненные идентификаторы сообщений в виде массива при загрузке представления, а затем в cellForRowAtIndexPath
проверить, содержит ли этот массив идентификатор сообщения этой ячейки или запустить запрос на выборку с предикатом в cellForRowAtIndexPath
? Последний был бы моим предпочтительным методом, но если у меня есть 100 или около того, то я подумал, будет ли это плохой этикет. Любая помощь будет очень оценена.Запрос на выборку данных ядра Core iOS, как использовать
Это мой принести запрос:
func persistQuery(predicateValueString: String!) -> Bool! {
let fetchRequest = NSFetchRequest(entityName: "LogItem")
let predicate = NSPredicate(format: "itemText == %@", predicateValueString)
fetchRequest.predicate = predicate
var didFindResult = true
if let fetchResults = managedObjectContext!.executeFetchRequest(fetchRequest, error: nil) as? [LogItem] {
if fetchResults.count == 0 {
didFindResult=false
}
}
return didFindResult
}
Попробуйте оба варианта и просмотрите их, чтобы узнать, какой из них лучше (и, как правило, не беспокойтесь об этом, если не наблюдаете проблему при тестировании в ожидаемых условиях) – Wain