incrementCount:completion
메서드에서 블록을 전달하고 그 모양이 어떻게 되나요? self.count
이 CounterClass에서 증가 된 후에 반환됩니까? 메서드에서 블록 매개 변수 (void(^)(void))callback;
을 정의한 방법이 올바른지 확실하지 않습니다. 즉 반환 값이 있어야합니다.@selector()에 블록을 전달하는 방법
의 ViewController
[NSTimer scheduledTimerWithTimeInterval:3.0
target:self.counterClass
selector:@selector(incrementCount:completion:)
userInfo:nil
repeats:YES];
CounterClass는
-(void)incrementCount:(NSTimer *)timer completion:(void(^)(void))callback;
{
self.count += 1;
}
또는'NSTimer'의 사용자 정보 –
@ScottBerrevoets를 사용하여, 당신은주의 조금 일을해야 당신이 블록을 복사해야하고로 'userInfo'는 단순히 유지됩니다 ... – Wain
대단히 감사합니다. 좋아요. 원하는 메소드 (3 초마다)를 호출 할 CounterClass (매 3 초마다)의 다른 메소드를 호출 할 수 있습니다. 비트는 당신의 발언에 의해 잃어버린 "블록은 @pr 계급의 operty ". 나는 당신이 CounterClass의 속성이라고 생각하지만, 어떻게 CounterClass에서 ViewController (내 질문의 핵심)에서 self.count를 얻을 수 있습니까? CounterClass에서 self.count를 다시 얻으려면 블록을 전달해야한다고 생각했습니다. 당신이 의미하는 것을 보여주기 위해 약간 확장 할 수 있습니까? 시간이 있으면 고마워요 –