【发布时间】:2014-09-15 16:50:04
【问题描述】:
我在 sqlite 中有两个表:
代码由 XCode Generation 生成:
class Event: NSManagedObject {
@NSManaged var startDate: NSDate
@NSManaged var details: EventDetail //i think this property shoud be var details Array<EventDetail> am i correct?
}
class EventDetail: NSManagedObject {
@NSManaged var title: String
@NSManaged var location: String
@NSManaged var note: String
@NSManaged var endDate: NSDate
@NSManaged var event: NSManagedObject
}
我想将事件放在 section 中,将 eventDetails 放在 rows 中。
我创建了加载事件的方法:
var eventList : Array<AnyObject> = []
func loadEvents(){
let appDel : AppDelegate = UIApplication.sharedApplication().delegate as AppDelegate
let moc: NSManagedObjectContext = appDel.managedObjectContext!
let eventMO = NSFetchRequest(entityName: "Event")
eventMO.returnsObjectsAsFaults = false
var err : NSErrorPointer = nil
eventList = moc.executeFetchRequest(eventMO, error: err)!
self.tblEvento.reloadData()
}
func numberOfSectionsInTableView(tableView: UITableView!) -> Int {
return eventList.count
}
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
//return (eventList[section] as Event).details.count
return //????? what can i put here
}
我不知道我可以在方法 numbertOfRowsInSection 中添加什么来定义该部分的行数。因为我无法访问 details.count 或类似的东西。
我认为还有其他方法可以做到这一点。我看到了一些使用 NSFetchedResultsController 但没有成功的东西。
我会很感激一些帮助。
【问题讨论】:
-
必须在 Core Data 模型检查器中将“详细信息”定义为 to-many 关系? – 然后你真的应该使用获取结果控制器。
-
嗨,马丁 R!我定义了它。你有一些带有 Fetched Results Controller 的示例吗?谢谢!
标签: ios uitableview swift nsfetchedresultscontroller sections