使用UITableView cellForRowAtIndexPath方法时,调用方法的tableview将传递给方法本身:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath;
如何创建利用相同技术的方法调用签名,以便将调用者传递给方法?像这样的东西: 签名:
- (void)questionDelegate:(HPSPickAWinnerQuestionDelegate *)questionDelegate questionDidChange:(NSInteger)questionElementTag
呼叫:
[self.pickAWinnerDelegate questionDidChange:2];
但这不起作用 - 正确的语法是什么?
非常感谢。
答案 0 :(得分:1)
您调用的方法将被称为 on 委托,而不是将委托作为参数传递。这是一个简单的例子:
@protocol HPSPickAWinnerQuestionDelegate <NSObject>
- (void)asker:(YourQuestionAskingClass *)asker questionDidChange:(NSInteger)questionElementTag;
@end
@interface YourQuestionAskingClass : NSObject
@property (weak) id<HPSPickAWinnerQuestionDelegate> delegate;
@end
@implementation YourQuestionAskingClass
- (void)someMethod {
[self.delegate asker:self questionDidChange:2];
}
答案 1 :(得分:0)
[self questionDelegate:pickAWinnerDelegate
questionDidChange:2];
答案 2 :(得分:0)
你的方法有2个参数。也许你应该这样做:
[self questionDelegate:self.pickAWinnerDelegate questionDidChange:2];