Ank*_*hah 3 core-data nsfetchedresultscontroller swift
我正在使用NSFetchedResultsController显示核心数据.下面是我的CoreData类
class Item: NSManagedObject {
@NSManaged var category: String
@NSManaged var dateAdded: NSDate
@NSManaged var image: String
@NSManaged var name: String
@NSManaged var subCategory: String
}
Run Code Online (Sandbox Code Playgroud)
我想要显示组中的所有项目.项目将根据dateAdded的月份进行分组.也就是说,节标题将显示月份,行将显示该月份添加的项目.
下面是我的NSFetchedResultsController的代码
var fetchedResultsController: NSFetchedResultsController = {
let fetchRequest = NSFetchRequest(entityName: "Item")
let sort = NSSortDescriptor(key: "dateAdded", ascending: false)
fetchRequest.sortDescriptors = [sort]
fetchRequest.fetchBatchSize = 20
let result = NSFetchedResultsController(fetchRequest: fetchRequest, managedObjectContext: self.appDelegate.childManagedObjectContext!, sectionNameKeyPath: nil, cacheName: nil)
result.delegate = self
return result
}()
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点.任何帮助将不胜感激.
提前致谢
我解决了它
class Item: NSManagedObject {
@NSManaged var category: String
@NSManaged var dateAdded: NSDate
@NSManaged var image: String
@NSManaged var name: String
@NSManaged var subCategory: String
var groupByMonth: String{
get{
let dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "MMM yyyy"
return dateFormatter.stringFromDate(self.dateAdded)
}
}
var fetchedResultsController: NSFetchedResultsController = {
let fetchRequest = NSFetchRequest(entityName: "Item")
let sort = NSSortDescriptor(key: "dateAdded", ascending: false)
fetchRequest.sortDescriptors = [sort]
fetchRequest.fetchBatchSize = 20
let result = NSFetchedResultsController(fetchRequest: fetchRequest, managedObjectContext: self.appDelegate.childManagedObjectContext!, sectionNameKeyPath: groupByMonth, cacheName: nil)
result.delegate = self
return result
}()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1478 次 |
| 最近记录: |