isequaltostring 比isequal 快,因為後者還要之行額外的步驟,因為它不知道受檢測的物件型別。
nsobject協議中有連個用於判斷等同性的關鍵方法:
- (bool)isequal:(id)object;
- (nsuinterger)hash;
要點:若想檢測物件的等同性,請提供「isequal:」 於hash方法。
相同的物件必須具有相同的雜湊碼,但是兩個相同的雜湊碼的物件卻未必相同。
不要盲目的逐個檢測每條屬性,而是應該依照具體的需求來制定檢測方案。
編寫hash方法是,應該使用計算速度快而且雜湊碼碰撞機率低的演算法。