속성이 foo
이고 관련 ivar이 _foo
이라고 가정합니다. 재정의 된 getter가 다른 선택자를 실행하지 않습니다
- (fooType*)foo {
[_foo bar];
return _foo;
}
을하지만 내가 bar
에 대한 상징적 중단 점을 설정하면 화재하지 않습니다. 그 이유가 궁금합니다.
속성이 foo
이고 관련 ivar이 _foo
이라고 가정합니다. 재정의 된 getter가 다른 선택자를 실행하지 않습니다
- (fooType*)foo {
[_foo bar];
return _foo;
}
을하지만 내가 bar
에 대한 상징적 중단 점을 설정하면 화재하지 않습니다. 그 이유가 궁금합니다.
foo
을 호출하는 개체가 nil이면이 방법을 사용할 수 없습니다. 마찬가지로 _foo
이 0이면 bar
이되지 않습니다.
foo
을 호출하는 곳에서 중단 점을 넣고 호출하는 객체를 살펴보십시오. 그런 다음 foo 호출을 시도 할 수도 있습니다.
그건 문제가되지 않는 것 같습니다. getter가 발생하기 전에 나는 self.foo가 0이 아니라는 것을 확인하기 전에 점검했고 실제로는 그렇지 않습니다. 하지만 getter를 호출하면 아무런 결과도 얻지 못합니다. –
'self.foo'가 nil이 아니거나'_foo'가 nil이 아닌지 확인했는지 확인 하시겠습니까? –
키 초기화 단계가 누락되었습니다. 나는 실제로 _foo가 0이 아님을 확인해야만했습니다. 귀하의 솔루션은 올바른 해결책을 지적했습니다. 감사! –
당신은 @synthesize foo = _foo가 있고 합성 된 foo를 오버 라이딩했다는 것을 의미합니까? – combinatorial
예 thats correct –
[self foo] 또는 self.foo를 사용하여 foo에 액세스합니까? – Steve