void (^configureCell)(PhotoCell*, Photo*) = ^(PhotoCell* cell, Photo* photo) {
cell.label.text = photo.name;
};
我从来没有见过一个块中的“=”符号,它是如何工作的?
谢谢!
答案 0 :(得分:4)
如果你提到这个位
void (^configureCell)(PhotoCell*, Photo*) = ^(PhotoCell* cell, Photo* photo) {
这是将块分配给名为configureCell
的变量。
答案 1 :(得分:2)
这是一个分配给configureCell变量的块声明。
这是块变量定义(例如NSArray *数组):
void (^configureCell)(PhotoCell *, Photo *)
这是块定义:
^(PhotoCell* cell, Photo* photo) {...}
您可以像这样使用此块:
PhotoCell *cell = [PhotoCell ...];
Photo *photo = [Photo ...];
// Execute block
configureCell(cell, photo);
答案 2 :(得分:0)
看看the Apple Documentation
。
如果您编写这样的代码块,您可以像在Java
中那样调用方法。
因此您可以通过以下方式传递变量:
MyCustomCell *cell = configureCell(photoCellVariable, photoVariable);
而不是像消息一样调用它,就像你通常在Objective-C
MyCustomCell *cell = [ConfigurePhotoCell:photoCellVariable
andPhotoVariable:photoVariable];