第八條 理解「物件等同性」這一概念

2022-09-02 06:57:06 字數 330 閱讀 5625

isequaltostring 比isequal 快,因為後者還要之行額外的步驟,因為它不知道受檢測的物件型別。

nsobject協議中有連個用於判斷等同性的關鍵方法:

- (bool)isequal:(id)object;

- (nsuinterger)hash;

要點:若想檢測物件的等同性,請提供「isequal:」 於hash方法。

相同的物件必須具有相同的雜湊碼,但是兩個相同的雜湊碼的物件卻未必相同。

不要盲目的逐個檢測每條屬性,而是應該依照具體的需求來制定檢測方案。

編寫hash方法是,應該使用計算速度快而且雜湊碼碰撞機率低的演算法。