Ios 通过UIButton调用函数
我不确定我的代码是否错误,但编译时没有错误 我有一个刷新按钮,用于刷新TableView,下面是以下代码:Ios 通过UIButton调用函数,ios,objective-c,Ios,Objective C,我不确定我的代码是否错误,但编译时没有错误 我有一个刷新按钮,用于刷新TableView,下面是以下代码: - (IBAction)refreshButton:(UIButton *)sender { UIButton *refreshButton = [UIButton alloc]; [refreshButton addTarget:self action:@selector(scanBLEDevices:) forControlEvents:UIControlEventTouchUpIns
- (IBAction)refreshButton:(UIButton *)sender {
UIButton *refreshButton = [UIButton alloc];
[refreshButton addTarget:self action:@selector(scanBLEDevices:) forControlEvents:UIControlEventTouchUpInside]; }
- (void)scanBLEDevices:(id)sender {
[manager scanForPeripheralsWithServices:@[[CBUUID UUIDWithString:BLEService]] options:nil];
[NSTimer scheduledTimerWithTimeInterval:2.0 target:self selector:@selector(stopScan:) userInfo:nil repeats:NO];}
这个代码有错误吗?我不确定第二行是否允许:
UIButton *refreshButton = [UIButton alloc];
您的代码中没有“错误”,正如您所说,它符合要求。这里的“错误”不仅仅是语法,而是上下文
如果您希望按钮触发并执行扫描,
然后,您应该在您的内部调用您的方法scanBLEDevices:
iAction
方法刷新按钮:
在代码段中,通过在刷新按钮方法中创建一个新的UIButton
,您只是将一个操作分配给一个尚未初始化的按钮,并且不提供触发按钮的机会(它是创建的,并且仅存在于该方法中)
假设您在故事板中正确地附加了动作方法,我建议您将简单的iAction
方法替换为以下方法:
- (IBAction)refreshButton:(UIButton *)sender {
[self scanBLEDevices:sender];
}
因为你的扫描设备:
方法需要一个id
发送者,你可以传递你的按钮(毕竟你在BLE方法中不使用它)
希望这能帮你找到正确的方向。快乐编码
注意:如果您不确定此处何时/何地允许
分配
,我建议您在代码中使用ui按钮
元素时,阅读一些有关iAction
的常见做法
您的代码中没有“错误”,正如您所说,它符合要求。这里的“错误”不仅仅是语法,而是上下文
如果您希望按钮触发并执行扫描,
然后,您应该在您的内部调用您的方法scanBLEDevices:
iAction
方法刷新按钮:
在代码段中,通过在刷新按钮方法中创建一个新的UIButton
,您只是将一个操作分配给一个尚未初始化的按钮,并且不提供触发按钮的机会(它是创建的,并且仅存在于该方法中)
假设您在故事板中正确地附加了动作方法,我建议您将简单的iAction
方法替换为以下方法:
- (IBAction)refreshButton:(UIButton *)sender {
[self scanBLEDevices:sender];
}
因为你的扫描设备:
方法需要一个id
发送者,你可以传递你的按钮(毕竟你在BLE方法中不使用它)
希望这能帮你找到正确的方向。快乐编码
注意:如果您不确定此处何时/何地允许
分配
,我建议您在代码中使用ui按钮
元素时,阅读一些有关iAction
的常见做法
橡皮鸭原则说,如果你不能解释行的作用,那么它就错了。如果你将refreshButton添加到
UIView
层次结构中,按钮会调用动作方法(iAction
),通常你不会在其中创建任何按钮。是的,第二个包含错误。橡皮鸭原则说,如果你不能解释行的作用,那么它就是错误的。如果你将refreshButton添加到UIView
层次结构中,一个操作方法(IBAction
)由一个按钮调用,通常你不会在其中创建任何按钮。是的,第二个包含一个错误。谢谢你的详细回答,非常容易理解和理解!!现在可以工作了,但现在我还有其他错误要修复。。哦,好吧!没问题-很高兴我能帮忙!谢谢你的详细回答,真的很容易理解和遵循!!现在可以工作了,但现在我还有其他错误要修复。。哦,好吧!没问题-很高兴我能帮忙!