2011-07-04 66 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