Objective c 在目标C中中断方法的执行
我正在写一个目标C程序。下面我已经包括了一个方法,我在点击该程序中的一个按钮后正在运行该方法。程序中还有一个停止按钮,当有人点击停止按钮时,我想停止这个方法的执行,并将应用程序的UI恢复到运行该方法之前的正常状态。有人能帮我做这件事吗Objective c 在目标C中中断方法的执行,objective-c,Objective C,我正在写一个目标C程序。下面我已经包括了一个方法,我在点击该程序中的一个按钮后正在运行该方法。程序中还有一个停止按钮,当有人点击停止按钮时,我想停止这个方法的执行,并将应用程序的UI恢复到运行该方法之前的正常状态。有人能帮我做这件事吗 -(JobStatus)beginUploadingTask{ void (^progressBlock)(void); progressBlock = ^{ @try{ do { //
-(JobStatus)beginUploadingTask{
void (^progressBlock)(void);
progressBlock = ^{
@try{
do {
// calls to some method
dispatch_async(dispatch_get_main_queue(), ^{
//execute some code
});
} while (index<fileSize);
}
@catch (NSException *ex) {
[self taskErrorWithMessage:@"Error in uploading your file. Please try again"];
return;
}
@finally {
NSLog(@ "finally block executed");
}
};
dispatch_queue_t queue = dispatch_get_global_queue(0, 0);
dispatch_async(queue, progressBlock);
return TaskStateUploaded;
-(作业状态)开始执行任务{
无效(^progressBlock)(无效);
progressBlock=^{
@试试{
做{
//对某些方法的调用
dispatch\u async(dispatch\u get\u main\u queue()^{
//执行一些代码
});
}当(据我所知,你无法停止队列中的一个块,因此当按下按钮时,可能会在主线程上设置一个标志,以检查块?我是Objective-C新手。你能解释更多吗?好的,这是一个完全的猜测。。在.m的顶部,你会有你的标志,例如静态BOOL shouldquitlop=NO;
,然后在你的类有一个按钮操作:-(iAction)quitbutonpressed:(id)sender{shouldQuitLoop=YES;}
。最后在你的块中,你有@try{do{if(shouldQuitLoop)break;…。
。我自己没有尝试过,所以它可能不起作用:)