iOS   发布时间:2022-03-30  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了ios – 使用Core Data Swift分割TableView和行大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
@H_502_4@
我在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放在行中.

我创建了加载事件的方法

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

我会帮助你.

@H_502_4@

解决方法

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

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

var fetchedResultsController:NSFetchedResultsController {

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
}
@H_502_4@ @H_502_4@
@H_502_4@
@H_502_4@
本图文内容来源于网友网络收集整理提供,作为学习参使用,版权属于原作者。

猜你在找的iOS相关文章

目前,苹果开发者账号可分为三种类型:个人、公司、企业,且三者的费用以及权限等不尽相同。 1.个人账号 费用:99 美元/年 协作人数:仅限开发者自己 不需要填写公司的邓百氏编码( D-U-N-S Nu
Symbol Value meaning NULL (void *)0 literal null value for C pointers nil (id)0 literal null value for Objective-C objects nil:对象为空定义某一实例对象为空值。例如:NSObject* obj = nil;if (...
Android篇环境要求1 安装winrar,然后配置winrar的环境变量,要用到winrar指令2 配置java的bin目录到环境变量,要用到jarsigner指令重签名步骤说明:1 从母包复制一个子包2 删除子包的签名文件META-INFO3 根据需要修改子包的文件,比如渠道号文件之类4 重签名子包对应的python脚本import os...
转载注明出处:https://blog.csdn.net/joosonmao/article/details/21172835刚接触iOS开发的人难免会对苹果的各种证书、配置文件等不甚了解,可能你按照网上的教程一步一步的成功申请了真机调试,但是还是对其中的缘由一知半解。这篇文章就对Certificate、Provisioning Profile等做个总结。 1.概念介绍如果你拥有一个开...
转载注明出处:https://www.jianshu.com/p/567d3b730608iOS armv7, armv7s, arm64区别与应用32位、64位配置历程2015年2月1日不允许不支持arm64的应用的提交; iOS10发布后,如果你的应用中使用到了32位的类、库,没有相应支持64位机型的库,则首次启动后会弹窗式提示:“ xxx可能使iPhone变慢...”; iO...
iOS9以下的自己越狱后,通过PP助手备份到电脑或者直接通过pp助手直接下载 
转载注明出处:https://www.cnblogs.com/mtystar/p/6082363.html0x01 静态库与动态库的区别1.静态库和动态库的存在形式上的区别静态库 .a .framework 动态库 .dylib (在Xcode 8里面,看到后缀为.tbd的库,它的本质都是.dylib文件) .framework 2.静态库和动态库在使用上的区别...
终端中运行xcodebuild -showsdks

ios – 使用Core Data Swift分割TableView和行

微信公众号搜 "程序精选"关注

大佬总结

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

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

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