我一直在努力让获取的属性在我的应用程序中正常工作,并且发现它非常令人困惑 - 主要是由于我终于弄清楚了这个奇怪的问题!
基本上,如果我在我的 xcdatamodeld 中更改 Fetched 属性的谓词,然后 Build-Run 应用程序会忽略这个新谓词并继续使用旧谓词。
很难描述这是多么令人讨厌和令人沮丧,但我确信我不是第一个遇到这种情况的人。
关于如何强制它在每次重建时更新更改的任何想法?
我一直在努力让获取的属性在我的应用程序中正常工作,并且发现它非常令人困惑 - 主要是由于我终于弄清楚了这个奇怪的问题!
基本上,如果我在我的 xcdatamodeld 中更改 Fetched 属性的谓词,然后 Build-Run 应用程序会忽略这个新谓词并继续使用旧谓词。
很难描述这是多么令人讨厌和令人沮丧,但我确信我不是第一个遇到这种情况的人。
关于如何强制它在每次重建时更新更改的任何想法?
好的,根据 Apple 的 Core Data 版本控制指南,两个版本在以下情况下被视为相同:
对于每个实体,以下属性必须相同:名称、父级、isAbstract 和属性。不比较 className、userInfo 和验证谓词。
对于每个实体中的每个属性,以下属性必须相等:name、isOptional、isTransient、isReadOnly,对于属性 attributeType,以及对于关系 destinationEntity、minCount、maxCount、deleteRule 和 inverseRelationship。
所以看起来改变一个获取的属性的谓词并不符合“改变”的条件......多么令人困惑。
您可以通过更改核心数据模型标识符的值来强制它考虑模型“已更改”