ios - 在CoreData中对已获取的属性进行排序

时间:2011-07-11 06:43:06

标签: iphone objective-c core-data

如何使用fetched属性创建排序数组?我是谓词编程的新手。

假设有两个实体:'MyEntity'和'Image'。 'MyEntity'与'Image'有很多关系,叫做'images'。 'Image'有两个属性:'image'和'index',我想用'index'作为排序键来排序图像。

我希望在'MyEntity'上有一个获取属性'sortedImages',它将返回'images'的排序版本。

我以前做的是加载所有图像并在内存中对它们进行排序并存储结果,但我发现这可能会占用太多内存。

- (NSArray *)sortedImages {
    if (!sortedImages) {
        NSSortDescriptor *descriptor = [NSSortDescriptor sortDescriptorWithKey:@"index" ascending:YES];
        sortedImages = [self.images sortedArrayUsingDescriptors:[NSArray arrayWithObject:descriptor]];
        [sortedImages retain];
    }
    return sortedImages;
}

1 个答案:

答案 0 :(得分:1)

不确定fetchedProperty是否是正确的解决方案,但您可以在父实体的managedObjectContext上创建NSFetchRequest,并在密钥“index”上使用NSSortDescriptor。这应该返回一个“具有故障能力”的图像对象排序数组。