2011-07-04 25 views
1

我想弄清楚,当你从一个NSObject驱动对象调用GetHashCode()时,MonoTouch是否正确调用底层的“散列”消息。对任意对象(在我的例子中为NSAttributedString)的GetHashCode()(在MD的程序集浏览器中)的实现进行快速检查,它调用object.InternalGetHashCode(),所以我怀疑它不会调用“hash”。 “哈希”似乎也没有公开,这让我怀疑还有另一种方法可以实现。任何人之前都在这条路上?GetHashCode()在NSObject派生对象的MonoTouch中正常工作吗?

回答

2

很好的观察,这是一个错误。

我会解决的MonoMac这一点,我们即将推出的iPhone/.NET产品

0
object.InternalGetHashCode() 

...也在Assembly Browser for System.Object中返回,无论它是MonoTouch还是Mono项目。

是的,它工作正常。

+0

的GetHashCode的默认实现创建的对象成员的哈希值。在这种情况下,单声道是不是只能看到指向客观c对象的指针,而不是底层内容?为了有用,为具有相同内容的两个nsstrings调用gethashcode应返回相同的值。除非发生了以某种方式发生的[Nsstring hash]调用,否则我不会看到这是如何工作的。 (在我的iPad上打字,请原谅懒惰的帽子;) – Ethan