Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/108.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/26.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
Ios 如何在obj-c中的块中通过引用发送参数_Ios_Objective C_Reference_Block - Fatal编程技术网

Ios 如何在obj-c中的块中通过引用发送参数

Ios 如何在obj-c中的块中通过引用发送参数,ios,objective-c,reference,block,Ios,Objective C,Reference,Block,您知道如何在块中通过引用发送参数吗 我的功能与此类似: 我尝试使用以下代码: //The function -(void)downloadObjects:(NSMutableSet**)set handler:(void(^block)(void))handler{ ... code ... } 这个电话呢 -(void)myFunction{ __block NSMutablesSet *objects = [NSMutableSet new]; [self downloadO

您知道如何在块中通过引用发送参数吗

我的功能与此类似:

我尝试使用以下代码:

//The function 
-(void)downloadObjects:(NSMutableSet**)set handler:(void(^block)(void))handler{
...
code
...
}
这个电话呢

-(void)myFunction{
   __block NSMutablesSet *objects = [NSMutableSet new];
   [self downloadObjects:&objects handler:^(void(^block)(void)){
      [self show:objects];
   }];
}
我收到一个EXC_BAD_访问错误,因为我的“objects”变量在使用前被释放


我知道我可以通过块响应接收对象,但在我的实际情况中,我希望以这种模式接收对象

没有必要将NSMutableSet传递给这样的块,您只会无缘无故地出现内存管理问题。只有当您想返回某些值(如N错误)时才需要它。

您想做什么需要它?在块函数中,我下载并存储项目,但在下载每个对象后,我想下载相关对象,但我的块是为所有请求的特定对象构建的,我不想为一种方法更改它,但我不确定我是否理解。你说你不想通过回复收到它。我想你的意思是作为块中的一个参数?您可以将其作为块的输入参数接收,然后将其保存到属性或其他内容中。这和你现在做的差不多,但不那么复杂。我同意你的观点,可能很复杂,也可能不太正确。但我的块是一个特殊的块,类似于AFNetworking块,带有success和failure分支和其他参数,我不想更改它,只是因为这个函数指针总是通过引用传递的。你不需要
**
,只要
*
就足够了。不需要