class MHClub: NSManagedobject{@NSManaged var name: String@NSManaged var shots: NSSetvar averagedistance: Int{ get{ if shots.count > 0{ var total = 0 for shot in shots{ total += (shot as! MHShot).distance.integerValue } return total / shots.count } else{ return 0 } }}
在我的表视图控制器中,我正在设置我的NSFetchedResultsController的fetchRequest,如下所示:
let request = NSFetchRequest(entityname: "MHClub")request.sortDescriptors = [NSSortDescriptor(key: "averagedistance",ascending: true),NSSortDescriptor(key: "name",ascending: true)]
像这样设置会导致我的应用程序崩溃,并在日志中显示以下消息:
'NSinvalidargumentexception',reason: 'keypath averagedistance not found in entity <NSsqlEntity MHClub ID=1>'
当我取出第一个排序描述符时,我的应用程序运行得很好,但我的表视图并没有完全按照我想要的方式排序.如何根据Swift中NSManagedobject子类的计算属性对表视图进行排序?
解决方法 正如Martin所指出的那样,你不能对计算属性进行排序.只需在每次拍摄时更新俱乐部的新存储属性. 总结以上是内存溢出为你收集整理的ios – 在NSManagedObjectSubclass上通过Swift Computed Property对NSFetchedResultsController进行排序全部内容,希望文章能够帮你解决ios – 在NSManagedObjectSubclass上通过Swift Computed Property对NSFetchedResultsController进行排序所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)