데이터베이스 모델 클래스가 NSObject
입니다. 나는 NSMutableArray
에이 객체들의 집합을 가지고 있습니다. 나는 indexOfObject:
을 사용하여 일치하는 것을 찾습니다. 문제는 모델 객체의 메모리 주소가 변경된다는 것입니다. 그래서 hash
메서드를 재정 의하여 모델의 행 ID를 반환합니다. 그러나이 문제는 해결되지 않습니다. hash
메서드의 값을 비교하려면 isEqual:
메서드를 재정의해야합니다.NSObject isEqual : 및 hash default 함수는 무엇입니까?
isEqual:
메서드는 기본적으로 동등성을 결정하기 위해 어떤 방법을 사용합니까?
메모리 주소를 사용한다고 가정합니다. isEqual:
설명서를 읽은 후에 나는 hash
방법의 값을 사용한다고 생각했습니다. 분명히, 그 값을 무시하려는 나의 시도가 나의 초기 문제를 해결하지 못했기 때문에 그것은 사실이 아니다.
여기에는 몇 가지 추측 해답이 있습니다. 누구든지 isEquals가 주소를 사용한다는 실제 문서를 제공 할 수 있습니까?> 나는 그것을 말하지 않고 있습니다. 그냥 말의 입에서 듣고 싶습니다. – DougW
@DougW 나는 이것에 대해 당신의 감정을 공유했기 때문에 나는 공식적인 레퍼런스를 추적하고 그것을 수용된 대답으로 편집했다. –
NSObject 클래스가 아닌 NSObject 프로토콜에 대한 문서를 읽는 중입니다. 프로토콜은 메소드가 수행해야하는 것을 정의하며, 클래스는 실제로 수행 할 작업을 정의하지 못합니다. equals 및 hash를 재정 의하여 항상 원하는 방식으로 작업하는 것이 가장 안전합니다. –