Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
objective c iOS中的完成处理程序_Ios_Objective C_Asynchronous_Completion Block - Fatal编程技术网

objective c iOS中的完成处理程序

objective c iOS中的完成处理程序,ios,objective-c,asynchronous,completion-block,Ios,Objective C,Asynchronous,Completion Block,我在研究积木,它的使用似乎给人留下了深刻的印象。但后来我知道,我们可以在函数中使用块作为变量,它的主要用途是当我们想做一些异步工作时,在得到一些结果之后,我们必须执行一些操作 我调查了很多资源,了解了他们在做什么。我试图通过如下方式传递字符串来实现同样的目的: 在.h文件中将块定义为参数 typedef void(^sudBlock)(NSString * myname); - (void)blockAsLastParam:(NSString*)name completion:(sudBloc

我在研究积木,它的使用似乎给人留下了深刻的印象。但后来我知道,我们可以在函数中使用块作为变量,它的主要用途是当我们想做一些异步工作时,在得到一些结果之后,我们必须执行一些操作

我调查了很多资源,了解了他们在做什么。我试图通过如下方式传递字符串来实现同样的目的:

在.h文件中将块定义为参数

typedef void(^sudBlock)(NSString * myname);

- (void)blockAsLastParam:(NSString*)name completion:(sudBlock)blockName;
在.m文件中实现块作为参数

-(void) blockAsLastParam:(NSString *)name completion:(sudBlock)blockName{
    blockName(name);
}


[self blockAsLastParam:@"sudh" completion:^(NSString *myname) {
        NSLog(@"This is block %@",myname);
    }];
所以这里我把“sudh”作为字符串传递,然后再次获取它

我仍然不知道while是如何工作的。 是否有一个教程,其中的事情是如何做的是完美地捕捉与图纸

我读过很多文章,但是他们只告诉我们需要实现的方式,但是没有告诉我们为什么这个实现会做这些事情。
另外,调用的函数中的参数传输是如何进行的。

您可以这样做

您可以在块中处理字符串并使用myResultFunction将结果发送回,在myResultFunction中,您可以做任何想做的事情,但如果您想更新UI请使用调度获取主队列,如下示例所示

[self blockAsLastParam:@"sudh" completion:^(NSString *myname) {

     NSString *processedString = @"";

     //Do your processing here your own logic
     [self myResultFunction:processedString];

}];

-(void)myResultFunction:(NSString*)porcessedString{
          //do anything with your String

         //UpDate UI
         dispatch_async(dispatch_get_main_queue(), ^{
        //write logic here for updating UI like updating textfield or label
    });           

}

你可以这样做

您可以在块中处理字符串并使用myResultFunction将结果发送回,在myResultFunction中,您可以做任何想做的事情,但如果您想更新UI请使用调度获取主队列,如下示例所示

[self blockAsLastParam:@"sudh" completion:^(NSString *myname) {

     NSString *processedString = @"";

     //Do your processing here your own logic
     [self myResultFunction:processedString];

}];

-(void)myResultFunction:(NSString*)porcessedString{
          //do anything with your String

         //UpDate UI
         dispatch_async(dispatch_get_main_queue(), ^{
        //write logic here for updating UI like updating textfield or label
    });           

}

你想要实现什么?读这篇文章,我不想仅仅通过查看它的用法来实现任何目标。如果我能举例说明如何调用API并将其结果传递给函数。这将是一个很好的链接可以帮助你了解什么是块。你想要实现什么?读这篇文章,我不想仅仅通过查看它的用法来实现任何目标。如果我能举例说明如何调用API并将其结果传递给函数。这将是一个很好的链接可以帮助你了解什么是块。