몇 가지 매개 변수가 필요한 일반 루틴이 있습니다. 뭔가 같은 :Objective-C - 콜백 매개 변수가있는 블록 저장
-(id) doStuff:(int)A:(int)B:(int)C {
//doStuff
return object;
}
나는 자신의 ID와 사용자 정의 세포의 숫자를 수납하는 UITableViewController
, 각이있다. '저장'을 누르면 해당 셀이 반복되고 일부 셀은 저장 될 때 '추가 동작'이 필요합니다.
지금까지 NSString *
및 사용자 지정 셀에 대리인을 저장하는 '콜백'개체를 만들었습니다. '저장'을 존재하면, 셀이 적용 어떤 콜백을 가지고 있으며, 어느 정도 잘 작동
SEL sel = NSSelectorFromString(Sel);
if([Del respondsToSelector:sel])
[Del performSelector:sel withObject:Cell];
지금 사용 여부, 보이는 ...하지만, 내가에 스위치/사건을 어떻게 전달할 방법이 필요 전달 된 셀의 ID입니다.이를 피하고 싶습니다.
그래서 대신 블록을 사용하고 싶습니다. 그러나 매개 변수가있는 블록을 변수에 저장하는 방법을 알지 못합니다.
것은 내가 할 노력하고있어 무엇 :
은 기능 블록 doStuff
를 선언합니다.
id (^doStuff) (int, int, int) = ^(int A, int B, int C) {
//does Stuff
};
그리고 콜백
[Cell addCallback:(^doStuff)(1, 2, 3)];
블록은 그 순간에 호출하지만, 셀에 저장하고 적절한시기에만를 호출 할 수 없습니다해야하기 때문에 이전에 생성 된 블록을 추가합니다. 어떻게하면이 문제를 올바르게 해결할 수 있습니까?
대단히 감사합니다.
편집 : 내가 피하고 싶은 것은 셀에 불필요하게 특수화해야하기 때문에 셀에 매개 변수를 저장하고 호출 할 때 전달하는 것입니다.
그것은 당신이 원하는 것을 같은 소리
나는 거의 내가하려고하는 것을 요약 한 것 같다. 이상하게 들릴지 모르지만 블록은 그렇습니다. 나는 그것을 시도하고 당신에게 피드백을 줄 것이다. 고마워요 :) – ATaylor