Objective c 非常奇怪的物理行为

Objective c 非常奇怪的物理行为,objective-c,ipad,sprite-kit,skphysicsbody,skphysicscontact,Objective C,Ipad,Sprite Kit,Skphysicsbody,Skphysicscontact,我有这个密码 SKPhysicsBody *firstBody, *secondBody; if (contact.bodyA.categoryBitMask < contact.bodyB.categoryBitMask) { firstBody = contact.bodyA; secondBody = contact.bodyB; } else { firstBody = contact.bodyB; secondBody = contact.body

我有这个密码

SKPhysicsBody *firstBody, *secondBody;
if (contact.bodyA.categoryBitMask < contact.bodyB.categoryBitMask) {
    firstBody = contact.bodyA;
    secondBody = contact.bodyB;
} else {
    firstBody = contact.bodyB;
    secondBody = contact.bodyA;
}
我从我的-voiddidBeginContact:nonnull skPhysicContact*联系人方法中捕获了此屏幕截图。我发现它非常混乱,因为2&3==2,但4&3==0。如文件所述

如果其中一个比较结果为非零值,则SKPhysicContact 对象被创建并传递给物理世界的代理


我想知道这怎么可能?由于第二个表达式返回0,为什么调用委托方法?

引号中说要么比较,要么两者都比较。哦,对不起。我不是来自讲英语的国家。