在 storyboard 中直接拖到 .m 中会生成下面方法,可以选择生成参数 sender。
- (IBAction) buttonPressed: (id)sender {
NSData *date = self.dataPicker.date;
NSString *message = [[NSString alloc] initWithFormat:
@"The date and time you selected is %@", date];
UIAlertController *alert =
[UIAlertController alertControllerWithTitle:
@"Date and Time selected" message: message
preferredStyle: UIAlertControllerStyleAlert];
UIAlertAction *action = [UIAlertAction actionWithTitle:
@"That's so true!" style: UIAlertActionStyleDefault handler: nil];
[alert addAction: action];
[self presentViewController: alert animated: YES completion: nil];
}
这里的 sender 是一个通用类型,在函数体中并没有显式使用。那么它的作用是什么呢?是否可以删除掉?我试着删了后跑会出现错误。
StackOverflow 上解答 It’s the obkect that triggered the event. E.g. sender will be the button that was pressed。也就是这个参数是输入,和 storyboard 中的按钮绑定。