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
Ios 有人能解释这段代码在做什么吗…[从类实例化特定对象]_Ios_Objective C_Object_Block - Fatal编程技术网

Ios 有人能解释这段代码在做什么吗…[从类实例化特定对象]

Ios 有人能解释这段代码在做什么吗…[从类实例化特定对象],ios,objective-c,object,block,Ios,Objective C,Object,Block,我需要澄清一下下面的对象是如何创建的 机械地说,我知道这是在为位于tableview中的特定按钮创建一个实例,但我不太确定方法调用本身。有人能给我解释一下区块内的脚本是怎么回事吗?这个有什么特别的名字吗 [OAUtility likePhotoInBackground:self.userPhotoObject block:^(BOOL succeeded, NSError *error) { OAPhotoHeaderView *actualHeaderView = (OAPhotoHeade

我需要澄清一下下面的对象是如何创建的

机械地说,我知道这是在为位于tableview中的特定按钮创建一个实例,但我不太确定方法调用本身。有人能给我解释一下区块内的脚本是怎么回事吗?这个有什么特别的名字吗

[OAUtility likePhotoInBackground:self.userPhotoObject block:^(BOOL succeeded, NSError *error) {

OAPhotoHeaderView *actualHeaderView = (OAPhotoHeaderView *) [self tableView:self.tableView viewForHeaderInSection:button.tag] ; 

...

}];

谢谢

此代码调用方法,如OAUtility类上的photoInBackground:block。
您将
self.userPhotoObject
作为第一个参数传递,该块传递两个参数successed和error。在该块中(我相信这是完成一个)调用另一个方法,该方法返回
actualHeaderView
object,
OAPhotoHeaderView
的子类,您发布的代码没有创建对象。它在类OAUtility中调用一个类方法,并向该方法传递一段代码

该方法类似于照片背景:块:

它看起来像是一个类似photoInBackground:block:的方法,它有两个参数,一个“photo对象”和一块代码

代码块有点像C函数指针。它们是可执行代码,可以获取参数并返回结果

在这种情况下,块不会返回结果。它需要一个名为succeed的BOOL和一个指向NSError对象的指针

看起来块中的代码基于按钮的标记值从表视图的特定部分获取标题视图


除此之外,很难了解更多的情况。我们需要了解OAUtility类及其方法,以及表视图的设置、按钮等。

谢谢Greg。那么这个…[self tableView:self.tableView viewForHeaderInSection:button.tag]实际上是PhotoHeaderView类中的一个方法=不,它是self(表视图控制器的子类)中的方法,它将在likePhotoInBackground:block方法完成后运行。此方法(tableView:ViewForHeaderSection:)是表视图委托方法。谢谢Duncan!我了解OAUtility甚至块的情况,但我不了解这一部分…(OAPhotoHeaderView*)[self tableView:self.tableView viewForHeaderInSection:button.tag]我习惯于看到object*myobject=[object alloc]init]。。。