0

ここで、ブロックとマクロを扱う際に少し問題があります。2 つのブロック ポインターが作成中の同じブロックを指すようにしたいと考えています。

例を示します

Block a;  //Block is a typedef
Block b;
a=b=^{int craziness=0};

現時点では、a と b は 2 つの異なるブロックです。マクロを簡単にするために同じブロックにしたい

私のマクロはMACRO_NAME(method) Block method = self.block =^

Self.block にはリスト内のブロックを管理する方法があるため、マクロが私のコードをたどった後、コードが私が持っている方法に従う必要があるため、結果を次のようにしたい

(void) somemethod
{
    MACRO_NAME(newBlock)
    {
        Int crazyness = 0;
    };
}

任意のアイデアをいただければ幸いです

編集: 補足として、私は MACRO_NAME(method,block) を使用して動作させることができることを知っていますが、コードが見苦しくなります。

4

2 に答える 2

0

判明しました。これを正しく機能させるには、3 番目のブロック ポインターを追加する必要がありました。

于 2013-08-23T20:51:25.813 に答える
0

なぜあなたはそれを好きにしないのですself.block = MACRO_NAME(method)か?

その後、

MACRO_NAME(method) Block method = ^
于 2013-08-23T05:38:09.907 に答える