Tôi có lớp mô hình cơ sở dữ liệu là NSObject
. Tôi có một bộ các đối tượng này trong một số NSMutableArray
. Tôi sử dụng indexOfObject:
để tìm một kết quả phù hợp. Vấn đề là thay đổi địa chỉ bộ nhớ của đối tượng mô hình. Vì vậy, tôi đang ghi đè phương thức hash
để trả về ID hàng của mô hình. Tuy nhiên, điều này không khắc phục được. Tôi cũng phải ghi đè phương pháp isEqual:
để so sánh giá trị của phương pháp hash
.NSObject isEqual: và hàm băm mặc định là gì?
Sử dụng phương pháp isEqual:
để xác định sự bình đẳng theo mặc định là gì?
Tôi giả sử nó sử dụng địa chỉ bộ nhớ. Sau khi đọc tài liệu isEqual:
tôi nghĩ rằng nó đã sử dụng giá trị từ phương pháp hash
. Rõ ràng, đó không phải là trường hợp như nỗ lực của tôi để ghi đè lên giá trị đó đã không giải quyết vấn đề ban đầu của tôi.
Có một vài câu trả lời đầu cơ ở đây. Bất cứ ai có thể cung cấp tài liệu thực tế rằng mặc định isEquals sử dụng địa chỉ> Tôi không gợi ý nó không, chỉ muốn nghe nó từ miệng của con ngựa. – DougW
@ DougW Tôi chia sẻ cảm xúc của bạn về điều này, vì vậy tôi đã theo dõi một tham chiếu chính thức và chỉnh sửa nó vào câu trả lời được chấp nhận. –
Bạn đang đọc tài liệu cho giao thức NSObject, không phải lớp NSObject. Giao thức xác định những gì các phương pháp nên làm, lớp không xác định những gì nó thực sự làm. Nó luôn luôn an toàn nhất để ghi đè bằng và băm để làm việc như thế nào bạn muốn họ làm việc. –