私はこれについてSOに関するさまざまな回答を見てきましたが、実際にどのように機能するかについて頭を悩ませることはできません。
私が持っているのは、タッチ可能な要素を含む GameEngine です。要素がタッチされると、GameEngine がリッスンして適切に処理する「I have been touched」イベントが発生します。
C# では、デリゲート/イベントを使用してこれを行いますが、ブロックを使用する適切な obj c に相当するものを見つけることができないようです。- 慣れ親しんだ 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