我有一个 b2Bodies 数组,要通过我的更新循环在安全点上删除,但有时我需要删除对象而不将它们添加到这个数组中。在我这样做之前,我想检查主体是否已经在数组中,如果它被删除,那么对象不会被删除两次(导致异常)。我知道如果主体是客观的 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");
}
}