我正在尝试更换" @ selector"这里有一个功能块。但这样做会显示错误说:
错误:发送' void(^)(UIButton * __ strong)'参数不兼容 类型' SEL'
请指示如何直接放置功能块,而不是使用" @ selector"。
[_contactPhoneButton addTarget:self
action:^(UIButton *sender) {
NSString *phoneNumber = [@"tel://" stringByAppendingString:sender.titleLabel.text];
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:phoneNumber]];
}
答案 0 :(得分:2)
阻止无法转换为SEL。他们的类型不同。
如果您仍想使用阻止,请参阅此link。
答案 1 :(得分:1)
您无法将 https://developers.google.com/youtube/v3/docs/errors
替换为Selector
,因为它们是不同的类型。但是,您可以使用类似Block
的内容来实现您想要的方法。
答案 2 :(得分:1)
您必须添加选择器,而不是阻止:
[_contactPhoneButton addTarget:self
action: @selector(buttonTapped:)];
然后
- (void) buttonTapped: (uibutton*) sender
{
NSString *phoneNumber = [@"tel://" stringByAppendingString:sender.titleLabel.text];
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:phoneNumber]];
}
答案 3 :(得分:0)
试试这个:
[_contactPhoneButton addTarget:[^{
NSString *phoneNumber = [@"tel://" stringByAppendingString:sender.titleLabel.text];
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:phoneNumber]];
} copy] action:@selector(invoke) forControlEvents:UIControlEventTouchUpInside];