我將NSFetchedResultsController作爲延遲計算屬性。 基於一個變量,創建排序描述符。這裏是我的代碼:在swift中更改計算屬性
private var sortOption: Options = .none
fileprivate lazy var inspirationsResults: NSFetchedResultsController<Inspiration> = {
// Create Fetch Request
let fetchRequest: NSFetchRequest<Inspiration> = Inspiration.fetchRequest()
// Configure Fetch Request
//let optn = self.sortOption.rawValue
switch (self.sortOption) {
case .sortAscending:
fetchRequest.sortDescriptors = [NSSortDescriptor(key: "inspirationName", ascending: true)]
case .sortDescending:
fetchRequest.sortDescriptors = [NSSortDescriptor(key: "inspirationName", ascending: false)]
case .sortByAdding:
fetchRequest.sortDescriptors = [NSSortDescriptor(key: "timeStamp", ascending: false)]
case .sortByUpdated:
fetchRequest.sortDescriptors = [NSSortDescriptor(key: "timeStamp", ascending: false)]
case .showFilter:
fetchRequest.sortDescriptors = [NSSortDescriptor(key: "timeStamp", ascending: false)]
default:
fetchRequest.sortDescriptors = [NSSortDescriptor(key: "timeStamp", ascending: false)]
}
fetchRequest.sortDescriptors = [NSSortDescriptor(key: "timeStamp", ascending: false)]
fetchRequest.fetchBatchSize = 10
// Create Fetched Results Controller
let fetchedResultsController = NSFetchedResultsController(fetchRequest: fetchRequest, managedObjectContext: CoreDataManager.shared.getContext(), sectionNameKeyPath: nil, cacheName: nil)
// Configure Fetched Results Controller
fetchedResultsController.delegate = self
return fetchedResultsController
}()
當sortOption變量的值發生改變,我要重新計算「inspirationsResults」變量,並相應地更改排序描述符。如何實現它?
非常感謝您的回覆,並給出了很好的解釋。 – Satyam