我喜欢 JavaScript 将函数定义为变量的能力,并尝试在 Objective-C 中做类似的事情。特别是,我想使用一个匿名块编写一个递归函数,我可以在一个对象上调用它并让它在树中工作,在每个节点上应用一个更改:
void ( ^setDetailsLoaded )( Product* ) = ^void ( Product* prod ) {
prod.detailsLoaded = true;
for ( Group* group in prod.groups ) {
for ( Product* mod in group.mods )
setDetailsLoaded( mod );
}
};
setDetailsLoaded( product ); <-- error here
error: address doesn't contain a section that points to a section in a object file
但是,当我运行程序(编译良好)时,我遇到了奇怪的错误[原文如此]。
我只是想知道是否可能需要保留块或其他东西,或者我是否应该使用函数指针而不是块来执行此操作。