这里是描述实体的NSManagedobject子类:
import Foundationimport CoreData@objc(Entry)class Entry: NSManagedobject { @NSManaged var date: NSDate @NSManaged var reflections: AnyObject @NSManaged var contactComment: NSSet @NSManaged var person: NSSet overrIDe func awakeFromInsert() { let Now:NSDate = NSDate() self.date = Now; }}
这里是试图排序数组的代码:
lazy var entrIEs:[Entry] = { var days:[Entry] = self.managedobjectContext!.requestEntity("Entry")as [Entry] days.sort({days.sort({.date < .date}) var today:Entry = days.last! println(today.date) return days}()public func <(a: NSDate,b: NSDate) -> Bool { return a.compare(b) == NSComparisonResult.OrderedAscending}public func ==(a: NSDate,b: NSDate) -> Bool { return a.compare(b) == NSComparisonResult.OrderedSame}extension NSDate: Comparable { }.date.compare(.date) == NSComparisonResult.OrderedAscending })
注意,在代码的后半部分,我可以访问并记录其中一个条目的“date”属性,并且编译器没有问题。
我的排序的语法是否正确?这个代码有没有另一个问题,我没有看到?
这是一个问题,Swift编译器没有给你一个有用的错误。真正的问题是NSDate不能与<直。相反,你可以使用NSDate的比较方法,像这样:days.sort({ .date < .date })
或者,您可以扩展NSDate以实现可比较协议, (和< =,>,> =,==):
注意:您只需要实现<和==并且如上所示,则标准库将提供其余的运算符< =,>等。
有了这个,原来的排序功能应该工作很好:
总结以上是内存溢出为你收集整理的数组 – 如何通过属性值(日期)对包含NSManagedObject子类的实例的swift数组进行排序全部内容,希望文章能够帮你解决数组 – 如何通过属性值(日期)对包含NSManagedObject子类的实例的swift数组进行排序所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)