【发布时间】:2014-11-12 09:19:36
【问题描述】:
我正在使用 coredata,所以我需要我的实体的排序描述符
例如,坐标实体有这个类函数:
class func sortDescriptors() -> Array<NSSortDescriptor>
{
return [NSSortDescriptor(key: "sequence", ascending: true)]
}
我在像这样对 CoreData 进行获取请求时使用它:
var request = NSFetchRequest(entityName: entityName)
request.sortDescriptors = T.sortDescriptors()
但是,当我有一个坐标数组作为另一个 coredata 对象的属性时,这是一个 NSSet(即未排序)
为了解决这个问题,我返回如下坐标:
return NSArray(array: coordinates!).sortedArrayUsingDescriptors(Coordinate.sortDescriptors()) as? Array<Coordinate>
感觉很难看,使用 NSArray 只是为了获得sortedArrayUsingDescriptors-方法。是否有类似的方法可以直接在 Swift 数组上执行此操作,即Array<Coordinate> 使用排序描述符?
谢谢!
【问题讨论】:
-
为什么不用
NSSet的sortedArrayUsingDescriptors()方法? -
我也可以这样做!但问题仍然存在;排序描述符是否与 Swift 数组兼容?
-
@rintaro
NSSet实例根据定义是无序的。我假设您指的是NSArray。
标签: ios arrays sorting core-data swift