gpt4 book ai didi

ios - 使用 Core Data 进行排序的 fetchRequest 有什么限制?

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:10:14 25 4
gpt4 key购买 nike


简而言之:

获取实体并根据不是属性@property对它们进行排序将导致错误(涉及NSDictionaryMapNode)第二次运行。

这是正常现象还是错误?您对此有什么意见或帮助吗?


长:

情况如下。

我有一个实体,它有两个属性attribute1attribute2

我生成了 [1]Entity.m 并向其添加了一个名为 myProperty@property >。因此,myProperty 是我的类 Entity.m@property 而不是实体 Entity 的属性。顺便说一句,myPropertyreadonly(假设它类似于 attribute1attribute2 连接。

现在,我执行以下操作:

NSManagedObjectContext * myContext = ... ;
NSFetchRequest * myRequest = [NSFetchRequest fetchRequestWithEntityName:@"Entity"];
NSSortDescriptor * mySortDescriptor = [NSSortDescriptor sortDescriptorWithKey:@"myProperty"
ascending:YES] ;
NSError *error ;

[myRequest setSortDescriptors:@[mySortDescriptor]] ;

NSArray * result = [myContext executeFetchRequest:myRequest
error:&error] ;
  • 第一次执行此代码时,我没有任何错误。

  • 第二次,我遇到了以下错误:

    [<NSDictionaryMapNode 0x1020cf310> valueForUndefinedKey:]: this class is not key value coding-compliant for the key myProperty.

我知道问题出在 myProperty 不是 Entity 的属性。我发帖的目的是提出这种情况,并了解您是否会对这种情况有任何评论。

[1] 使用 mogenerator (https://github.com/rentzsch/mogenerator)。

最佳答案

这是众所周知的。您无法对商店中不持久的任何东西进行分类。它不应该工作(第一次工作意味着你没有 MOC 或类似的东西)。

您应该向持久化的实体添加一个新属性。执行诸如实现 willSave 之类的操作或观察依赖键并使用该触发器更新新属性 (myProperty) 的值。


请参阅 Core Data Programming Guide获取谓词和排序描述符 部分|

关于ios - 使用 Core Data 进行排序的 fetchRequest 有什么限制?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19401055/

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