iOS从主数据库中获取CoreData中的对象

sel*_*fsx 2 iphone core-data nssortdescriptor ios

我已使用CoreData将数据保存到db中.我需要以保存的顺序从我的表中获取数据.在内部表中,它由Z_PK订购 - 隐藏的CoreData密钥.我该如何创建这样的排序描述符.如果我使用没有排序描述符的获取请求,我的数据对象的顺序错误.

pau*_*ley 7

Core Data框架未向您展示的任何内容都是实现细节.Z_PK存在并且目前适合您的目的的事实不能被依赖.

如果创建/保存顺序对您的模型很重要,那么它应该包含在您的模型中.真的没有其他的东西.


Cha*_*ndo 5

核心数据框架中没有合适的方法来按主键对对象进行排序,但我认为我们可以使用objectID作为主键并按objectID进行排序。特定对象的 ObjectID 总是会增加..因此您可以使用以下方法

/*!
@param <NSManagedObject> array 
@return <NSManagedObject> sortedarray
*/

+ (NSArray *) sortManagedObjectArrayByObjectID:(NSArray *) array {

    NSArray *compareResult = [array sortedArrayUsingComparator:^NSComparisonResult(NSManagedObject *obj1, NSManagedObject *obj2) {

        NSString *s = [obj1.objectID.URIRepresentation lastPathComponent];
        NSString *r = [obj2.objectID.URIRepresentation lastPathComponent];
        return [s compare:r];

    }];

    return compareResult;

}
Run Code Online (Sandbox Code Playgroud)

希望这会有所帮助