Objective-c方法调用传递给调用者的引用

时间:2015-01-13 14:40:33

标签: ios objective-c uitableview methods parameters

使用UITableView cellForRowAtIndexPath方法时,调用方法的tableview将传递给方法本身:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath;

如何创建利用相同技术的方法调用签名,以便将调用者传递给方法?像这样的东西: 签名:

- (void)questionDelegate:(HPSPickAWinnerQuestionDelegate *)questionDelegate questionDidChange:(NSInteger)questionElementTag

呼叫:

[self.pickAWinnerDelegate questionDidChange:2];

但这不起作用 - 正确的语法是什么?

非常感谢。

3 个答案:

答案 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];