gpt4 book ai didi

ios - RLMArray 中对象的逆序

转载 作者:塔克拉玛干 更新时间:2023-11-02 07:55:05 29 4
gpt4 key购买 nike

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

最佳答案

就目前而言,RLMArray 对象直接映射到对象在 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

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

关于ios - RLMArray 中对象的逆序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40548638/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com