Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/15.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 在块内调用委托方法。委托更改_Objective C_Objective C Blocks - Fatal编程技术网

Objective c 在块内调用委托方法。委托更改

Objective c 在块内调用委托方法。委托更改,objective-c,objective-c-blocks,Objective C,Objective C Blocks,我有以下代码: __block id <BitlyConnectionDelegate> blockDelegate = [self delegate]; __block BitlyConnection *blockSelf = self; [NSURLConnection sendAsynchronousRequest:request queue:[NSOperationQueue mainQueue] completionHandler:^(NSURLResponse *res

我有以下代码:

__block id <BitlyConnectionDelegate> blockDelegate = [self delegate];
__block BitlyConnection *blockSelf = self;

[NSURLConnection sendAsynchronousRequest:request queue:[NSOperationQueue mainQueue] completionHandler:^(NSURLResponse *response, NSData *data, NSError *error) {

//do some stuff

[blockDelegate someMethod:blockSelf withParameters:parameters]; //calling a delegate method

}];
所以我记录了委托的类,在块之前,委托类是正确的,但它会改变,有时块委托是u NSArrayI或u nsmutablerearray 这会导致错误:

[\uu NSArrayI someMethod:withParameters]已将无法识别的选择器发送到实例

blockDelegate变量正在更改,但我不知道它是如何更改的以及更改的原因。 任何提示/建议都会很棒。解释它为什么会发生变化是非常受欢迎的

注意:这两个类都是我自己的,都是我自己写的


Jack

没有多大意义,但是并非所有委托方法都必须存在,因此应该使用respondsToSelector。还有,为什么这些变量使用_块限定符?我肯定你的意思是_秒弱?_块用于访问块内的这些变量。不,不是,它用于声明您将写入这些变量,而您没有这样做。删除_块声明并重新测试。哇,很好,这就成功了:非常感谢!但是,当我使用self和self.delegateNo时,这个变量崩溃了,这是另外一回事。发布另一个问题并包括堆栈跟踪。