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

Objective-c method call passing a reference to the caller

当使用 UITableView cellForRowAtIndexPath 方法时,调用该方法的表视图将传递给方法本身:

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

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

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

致电:

[self.pickAWinnerDelegate questionDidChange:2];

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

非常感谢。

[self questionDelegate:pickAWinnerDelegate
     questionDidChange:2];

您调用的方法将在 委托上调用,而不是将委托作为参数传递。这是一个简单的例子:

@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];
}

你的方法有 2 个 parameters.Maybe 你应该这样做:

[self questionDelegate:self.pickAWinnerDelegate questionDidChange:2];