我得到一個EXC_BAD_ACCESS從b2fixture訪問一個b2body。這很可能是由於我缺乏在C知識++,因爲我是一個ObjC開發在C混合++(剛開始Box2D的):EXC_BAD_ACCESS with box2d and b2body
Myb2dUserData.h
@interface Myb2dUserData : NSObject {
MyContact *climbingHoldContact;
}
@property (nonatomic, assign) MyContact *climbingHoldContact;
Myb2dUserData.mm
b2Fixture *fixA = climbingHoldContact->fixtureA;
b2Body *bodA = fixA->GetBody(); //EXC_BAD_ACCESS
我分配climbingHoldContact在b2ContactListener,這是一個很值得從這段代碼複製: http://www.raywenderlich.com/505/how-to-create-a-simple-breakout-game-with-box2d-and-cocos2d-tutorial-part-22
void MyContactListener::BeginContact(b2Contact* contact) {
MyContact myContact = { contact->GetFixtureA(), contact->GetFixtureB() };
_contacts.push_back(myContact);
b2Fixture *fixtureA = contact->GetFixtureA();
b2Body *bodyA = fixtureA->GetBody();
Myb2dUserData *userDataA = (Myb2dUserData *)bodyA->GetUserData();
bodyHoldUD.climbingHoldContact = &myContact;
請發佈堆棧跟蹤。 – trojanfoe
爲NULL指針添加更多檢查 –