スープの皆さん、
自分自身を呼び出す関数を実行しようとしていますが、すべてを 1 つのブロックに配置することで、
ご覧のように、次の関数は (arcrandom が 50 未満の数値を返すまで) 無制限に呼び出されることを意図しており、出力として、偶然に応じて可変数の "RUNNING" メッセージを期待する必要があります。
void (^_test_closure)(void) = ^ {
NSLog(@"RUNNING");
if(arc4random() % 100 > 50) {
_test_closure();
}
};
_test_closure();
ただし、実行すると EXC_BAD_ACCESS エラーが発生します。コードがクロージャー内で _test_closure を呼び出そうとすると、基本的にどこも指していないことがわかりました。
上記のコードを機能させる方法を知っている人はいますか?