【发布时间】:2012-12-12 07:47:47
【问题描述】:
我有一个通用例程,它需要一些参数。 比如:
-(id) doStuff:(int)A:(int)B:(int)C {
//doStuff
return object;
}
我有一个UITableViewController,其中包含许多自定义单元格,每个单元格都有自己的 ID。当点击“保存”时,这些单元格会被迭代,并且某些单元格在保存时需要“附加行为”。
到目前为止,我已经创建了一个“回调”对象,它在自定义单元格中存储了一个 NSString * 和一个委托。在“保存”后,单元格会查看是否有任何回调要应用和使用
SEL sel = NSSelectorFromString(Sel);
if([Del respondsToSelector:sel])
[Del performSelector:sel withObject:Cell];
现在效果不错...但是,它需要我传递的方法来对传递的单元格的 ID 进行切换/案例,我想避免这种情况。
这就是我想改用块的原因,但我真的不知道如何将参数化块存储在变量中。
我正在尝试做的事情:
声明一个功能块doStuff。
id (^doStuff) (int, int, int) = ^(int A, int B, int C) {
//does Stuff
};
并将之前创建的块添加为回调
[Cell addCallback:(^doStuff)(1, 2, 3)];
此时不能调用该块,而应将其存储在单元格中,并且仅在适当的时候调用它。 我该如何正确处理?
非常感谢。
编辑:我还想避免将块的参数存储在单元格中并在调用时传递它们,因为这将需要我不必要地进一步专门化单元格。
【问题讨论】:
标签: objective-c ios callback