HTML5   发布时间:2022-04-27  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了ios – 使用Core Data Swift分割TableView和行大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
@H_673_4@ 我在sqlite中有两个表:

代码由XCode Generation生成

@H_944_9@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放在行中.

我创建了加载事件的方法

@H_944_9@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但没有成功.

我会帮助你.

解决方法

只是一个提示:如果您正在使用COreData和UiTableView,请使用NSFetchedResultsController使事情变得更加容易.如果你正在寻找一个起点&示例代码 – 只需在xcode中创建一个新的master-detail-application项目,然后在对话框中打开“Use Core Data”.

现在,直接提出您的问题:NSFetchResultsController的示例“实现”:

var fetchedResultsController:NSFetchedResultsController {

@H_944_9@if _fetchedResultsController != nil { return _fetchedResultsController! } let fetchrequest = NSFetchrequest() // Edit the entity name as appropriate. let entity = NSEntityDescription.entityForName("Event",inManagedObjectContext: self.managedObjectContext!) fetchrequest.entity = entity // Set the batch size to a suitable number. fetchrequest.fetchBatchSize = 20 // Edit the sort key as appropriate. let sectionSortDescriptor = NSSortDescriptor(key: "startDate",ascending: truE) let secondSortDescriptor = NSSortDescriptor(key: "title",ascending: truE) let sortDescriptors = [sectionSortDescriptor,secondSortDescriptor] fetchrequest.sortDescriptors = sortDescriptors // Edit the section name key path and cache name if appropriate. // nil for section name key path means "no sections". let aFetchedResultsController = NSFetchedResultsController(fetchrequest: fetchrequest,managedObjectContext: self.managedObjectContext!,sectionNameKeyPath: "startDate",cachename: nil) aFetchedResultsController.delegate = self _fetchedResultsController = aFetchedResultsController var error: NSError? = nil if !_fetchedResultsController!.performFetch(&error) { // replace this implementation with code to handle the error appropriately. // abort() causes the application to generate a crash log and terminate. You should not use this function in a shipping application,although it may be useful during development. //println("Unresolved error \(error),\(error.userInfo)") abort() } return _fetchedResultsController! } // MARK: - Table view data source override func numberOfSectionsInTableView(tableView: UITableView) -> Int { return self.fetchedResultsController.sections?.count ?? 0 } override func tableView(tableView: UITableView,numberOfRowsInSection section: int) -> Int { let sectionInfo = self.fetchedResultsController.sections![section] as NSFetchedResultsSectionInfo return sectionInfo.numberOfObjects }

大佬总结

以上是大佬教程为你收集整理的ios – 使用Core Data Swift分割TableView和行全部内容,希望文章能够帮你解决ios – 使用Core Data Swift分割TableView和行所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。