gpt4 book ai didi

ios - 根据第二个数组对 NSManagedObject 数组进行排序

转载 作者:行者123 更新时间:2023-11-29 01:06:05 25 4
gpt4 key购买 nike

我正在尝试根据与每个数组关联的值对 NSManagedObject 数组进行排序。这些值的计算成本很高,所以我想最多计算一次。大多数类似问题的解决方案都涉及构建 NSDictionary,但我的对象并不(必然)符合 NSCopying 协议(protocol)。我考虑过使用对象 ID,但是否有更清洁/更简单的解决方案?这个方法有什么问题吗?

最佳答案

  1. NSManagedObject 子类中创建一个便捷方法,用于计算您需要作为排序依据的值并将其返回。对其进行编码,使其只计算一次值。
  2. 按方便的方法排序。

OP更新

Can you elaborate on how you do 1. ? Should I use NSCache ? Thanks

你将 NSManagedObject 子类化:

@interface MySubclass: NSManagedObject
@property NSString *myCalculatedSortValue;

- (NSString*)calculatedSortValue;

@end

然后你以懒惰的方式实现它:

@implementation MySubclass

- (NSString*)calculatedSortValue
{
if (myCalculatedSortValue) return myCalculatedSortValue;
//calculate value
return myCalculatedSortValue;
}

然后您可以按 calculatedSortValue 排序,每个生命周期只会计算一次。

注意:这仅在 NSManagedObject 实例从存储中获取后才有效。这不会直接对存储起作用,因为所有计算都发生在对象空间中。

关于ios - 根据第二个数组对 NSManagedObject 数组进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36344511/

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