Ios RLMArray内对象的反向顺序

Ios RLMArray内对象的反向顺序,ios,realm,Ios,Realm,我一直在测试用对象反转RLMArray顺序的可能性。 我知道我可以将对象添加到NSArray,然后将reverseObjectEnumerator添加到该数组,但我希望继续使用RLMarray,因为某些对象可能会失效。如果添加到NSArray中,它们将保持无效并抛出错误。目前,对象是对象在Realm中存储方式的直接映射。如果您尝试更改其中对象的顺序,这就是它们存储在磁盘上的方式 不过,您尝试继续使用RLMArray无疑是正确的选择。将对象从RLMArray复制到NSArray将在每个对象中分页,

我一直在测试用对象反转RLMArray顺序的可能性。
我知道我可以将对象添加到NSArray,然后将reverseObjectEnumerator添加到该数组,但我希望继续使用RLMarray,因为某些对象可能会失效。如果添加到NSArray中,它们将保持无效并抛出错误。

目前,对象是对象在Realm中存储方式的直接映射。如果您尝试更改其中对象的顺序,这就是它们存储在磁盘上的方式

不过,您尝试继续使用
RLMArray
无疑是正确的选择。将对象从
RLMArray
复制到
NSArray
将在每个对象中分页,这将影响性能和内存

我能推荐的最好的方法是继续使用
RLMArray
,但是使用一种方法来抽象和反转对它的访问

@interface MyObject: RLMObject

@property RLMArray<ChildObject *><ChildObject> *children;
- (RLMObject *)childAtInvertedIndex:(NSInteger)index;

@end

@implementation MyObject

- (RLMObject *)childAtInvertedIndex:(NSInteger)index
{
    NSInteger invertedIndex = (self.children.count - 1) - index;
    return self.children[invertedIndex];
}

@end
@接口MyObject:RLMObject
@玛丽*子女的财产;
-(RLMObject*)儿童转化指数:(NSInteger)指数;
@结束
@实现MyObject
-(RLMObject*)儿童转化指数:(NSInteger)指数
{
NSInteger inversedindex=(self.children.count-1)-索引;
返回self.children[inversedindex];
}
@结束

这样,您仍然可以直接从
RLMArray
访问对象,但您可以控制访问它们的顺序。:)

非常聪明。我非常感谢你,阿姆罗!:)谢谢你,提姆,这看起来是一个聪明的逆转方法,我会尝试这种方法。