我已经为此查看了关于 SO 的各种答案,但无法完全理解这一切是如何工作的。
我所拥有的是一个包含可触摸元素的 GameEngine,我想要的是当一个元素被触摸时,它会触发 GameEngine 侦听并适当处理的“我已被触摸”事件。
在 C# 中,我会使用委托/事件来执行此操作,但似乎找不到使用块的体面 obj c 等价物。- 我想使用 Blocks,因为它更类似于我习惯的 C# 中的匿名函数。
在 C# 中,我只需执行以下操作,在目标 c 中,似乎我需要编写一页代码才能使相同的事情正常工作?
touchableObject.touched += (o) => { handler code yay }
根据 Driis 的回答进行编辑:
宣言
typedef void (^CircleTouchedHandler)(id parameter);
@interface CircleView : UIView{
}
@property CircleTouchedHandler Touched;
如何调用它并将自己作为参数传递?
[self Touched(self)]; // this doesnt work