Player 인스턴스가 있고, 스코어에 옵서버를 추가하여 iOS 애플리케이션의 스코어 디스플레이를 업데이트 할 수 있다고 가정 해 보겠습니다. 그러나NSObject 옵저버를 어떻게 디버깅 할 수 있습니까?
- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context
: 다음이 메시지가 나타납니다 정의하는 방법을, 같은 클래스에서
[[self.game player] addObserver:self
forKeyPath:@"score"
options:NSKeyValueObservingOptionNew
context:nil];
: 나는 관찰자를 추가하려면이 보이는 메소드를 호출해야한다고 생각 이 메서드에 배치 한 중단 점은 결코 적중되지 않습니다.
이 문제를 진단하는 방법을 알고 싶습니다. 플레이어 인스턴스가 채워 졌는지 확인하고 점수가 업데이트되면 동일한 인스턴스가 업데이트됩니다.
도움이된다면 방금 프로젝트를 ARC로 변환했지만 위의 코드는 새로운 것이며 결코 작동하지 않았습니다.
저는 [[self.game player] valueForKey : @ "score"]라고 불렀습니다. 결과적으로 nil이 반환되었으므로 다른 응용 프로그램에 문제가 있다고 생각합니다. 내가 방금 낭비했다고 생각하는 시간을 가져 주셔서 감사합니다. –
좋아요, didFinishLaunchingWithOptions 전에 viewDidLoad가 실행되는 것으로 밝혀 졌기 때문에 당시에는 사용할 수 없었던 것에 의존하고있었습니다. 어쨌든 몇 가지 명성을 얻으십시오. –