更新ループによって安全な時点で削除される b2Bodies の配列がありますが、オブジェクトをこの配列に追加せずに削除する必要がある場合があります。これを行う前に、本体が既に配列にあるかどうかを確認し、それが削除されている場合は、オブジェクトが 2 回削除されないようにします (例外が発生します)。体が目的のcオブジェクトであれば、これは簡単だと思います。
オブジェクトは次のように配列に追加されます。
[bodiesToBeDestroyedMutableArray addObject:[NSValue valueWithPointer:body]];
オブジェクトをbodiesToBeDestroyedMutableArray
特定の b2Body ポインターと比較して、それらが同じ本体 (指している) かどうかを確認できますか? 私はもう試した:
if ([bodiesToBeDestroyedMutableArray containsObject:[NSValue valueWithPointer:body]])
と
for(NSValue *bodyValue in bodiesToBeDestroyedMutableArray) {
b2Body *bodyToTest = (b2Body*)[bodyValue pointerValue];
if(bodyToTest == body){
NSLog(@"body found in bodies to be destroyed");
}
}