objective-c – 我应该使用==还是[NSManagedObject isEqual:]来比较同一上下文中的托管对象?

objective-c – 我应该使用==还是[NSManagedObject isEqual:]来比较同一上下文中的托管对象?,第1张

概述假设变量A和B在相同的托管对象上下文中保存托管对象的实例。我需要确保它们与持久存储中相同的“记录”相关联。核心数据编程指南中的 Faulting and Uniquing部分指出: Core Data ensures that—in a given managed object context—an entry in a persistent store is associated with on 假设变量A和B在相同的托管对象上下文中保存托管对象的实例。我需要确保它们与持久存储中相同的“记录”相关联。核心数据编程指南中的 Faulting and Uniquing部分指出:

@H_301_8@

@H_301_8@

Core Data ensures that—in a given managed object context—an entry in a persistent store is associated with only one managed object.@H_301_8@

从这个角度来看,我的目的似乎是一个指针比较。或者使用isEqual来比较管理对象在同一个上下文中是否有意义?@H_301_8@解决方法 使用==来确定两个指针是否指向同一个对象。使用-isEqual来确定两个对象是否“相等”,其中相等的概念取决于被比较的对象。 -isEqual:通常比较-hash方法返回的值。我以前写过,如果两个管理对象包含相同的值,-isEqual似乎可能返回true。这显然是不正确的。在文档中有一些注意事项,确保可变对象的哈希值在集合中不会更改,并且知道给定对象是否在集合中可能很困难。看起来可以肯定的是,受管对象的散列不依赖于该对象所包含的数据,更有可能与该对象的不可变的连接;该对象的-objectID值似乎是可能的候选者。

@H_301_8@

考虑到这一点,我正在改变我的观点;-)。每个记录只能在给定的上下文中表示一次,所以==可能是安全的,但是-isEqual:似乎更好地表达了你的意图。@H_301_8@ 总结

以上是内存溢出为你收集整理的objective-c – 我应该使用==还是[NSManagedObject isEqual:]来比较同一上下文中的托管对象?全部内容,希望文章能够帮你解决objective-c – 我应该使用==还是[NSManagedObject isEqual:]来比较同一上下文中的托管对象?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1036798.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-24
下一篇 2022-05-24

发表评论

登录后才能评论

评论列表(0条)

保存