CoreData
에서 가져온 결과의 데이터에 액세스하는 데 문제가 있습니다. 데이터는 UITableView
으로 표시되며 잘 표시됩니다. 속성을 기반으로 데이터를 필터링하는 옵션을 구현하려고합니다. 이것은 또한 NSCompoundPredicate
을 통해 잘 작동합니다.CoreData에서 가져온 엔티티 속성 값에 액세스
가져 오기 요청은 정상적으로 처리되지만 가져온 엔티티의 속성 중 하나에서 값을 추출하여 총 비용을 추가하는 데 문제가 있습니다.
필터링 된 결과를 가져 오는에 대한 코드 :
func attemptFilteredFetch(filter: Array<NSPredicate>)
{
let filterCriteria: NSCompoundPredicate = NSCompoundPredicate(andPredicateWithSubpredicates: filter)
let fetchRequest: NSFetchRequest<StoredExpense> = StoredExpense.fetchRequest()
let dateSort = NSSortDescriptor(key: "dateOfExpense", ascending: false)
fetchRequest.sortDescriptors = [dateSort]
fetchRequest.predicate = filterCriteria
let controller = NSFetchedResultsController(fetchRequest: fetchRequest, managedObjectContext: context, sectionNameKeyPath: nil, cacheName: nil)
controller.delegate = self
self.controller = controller
do
{
try controller.performFetch()
}
catch
{
let error = error as NSError
print("\(error)")
}
expenseList.reloadData()
}
지금까지 내가 그러나 응용 프로그램 충돌합니다
attemptFilteredFetch()
함수가 호출 내가 온라인으로 볼
here와 비슷한 사람을 발견하는 방법을 시도했다.
나는이 방법을 잘못 생각하고 있을지 모르지만, 배열에 가져 오기 요청을 추가하고이를 통해 반복하여 전체 값을 얻을 수있을 것으로 기대합니다.
더 좋은 방법이 있습니까? 또는 속성의 값에 즉석에서 액세스 할 수있는 방법이 있습니까?
어떤 종류의 오류가 표시됩니까? 또한 모델을 변경 했습니까? 라이트 마이그레이션을 켜야 할 수도 있습니다. – CryingHippo
나는 그것을 이해했다. NSManagedObject Subclass를 수동으로 생성하면 모호한 오류가 발생합니다. 수동으로 생성 된 모델을 제거했으며 문제가 해결되었습니다. – boywithaxe