방금 버그를 발견했습니다. 버그를 추적 해보니, A (따라서 B)가 0 일 때 이것이 위반된다는 것을 알았습니다.A == B이면 [A isEqual : B]가 참임을 의미합니까?
나는 여기에 아무것도 놓치지 않고 있는지 확인하고 싶습니다.
질문에 대한 대답이 사실인가 아니면 예외가 있습니까?
방금 버그를 발견했습니다. 버그를 추적 해보니, A (따라서 B)가 0 일 때 이것이 위반된다는 것을 알았습니다.A == B이면 [A isEqual : B]가 참임을 의미합니까?
나는 여기에 아무것도 놓치지 않고 있는지 확인하고 싶습니다.
질문에 대한 대답이 사실인가 아니면 예외가 있습니까?
nil
으로 보낸 메시지의 반환 코드는 항상 0이며, 이는 NO
또는 false와 같습니다. 그래서 당신이 관찰하는 행동은 정확히 직관적이지 않을지라도 예상되고 정확합니다. nil
개체가 제대로 일치하지 않습니다. nil
에는 실제로 신원이 없습니다.
Objective-c에서 A가 nil 인 경우 [A isEqual : B]와 같은 메시지를 보낼 수 있습니다. 그러나 결과를 반환하는 무 객체를 기대할 수는 없습니다! 나는 아직 애플의 심판을 찾지 못했지만 반환 값이 정의되지 않았거나 nil/false/0 자체로 설정되어 있다고 의심된다.
왜 투표가 늦습니까? –
'nil'에 메시지를 보내면 값을 반환 할 수 있으며 https://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/ObjectiveC/Chapters/ocObjectsClasses.html#//apple_ref에 문서화되어 있습니다./doc/uid/TP30001163-CH11-SW7. (나는 downvote하지 않았다.) –
@MartinR 나는 값이 리턴 될 것이라고 의심했지만 (내가 알고 있었어야 했음), 내가하려고했던 점은 목표 클래스의 어떤 로직도 실행될 수 없다는 것이다. –
감사합니다. 확인이 필요합니다. –