2015-03-17 3 views
0

Особым SpriteBuilder приложение Я разрабатываю использует SpriteBuilder SB версии 1.4.7, X Code 6.2 с прошивкой 8.2 развертывания iPhone и FUNCSpriteBuilder | Cocos2d - Swift | XCode | ccPhysicsCollisionBegin

ccPhysicsCollisionBegin(pair: ...) -> Bool { return true }. 

приложение отлично работает на iPhone 5S и iPhone 6 тренажеров, но заканчивается на вышеупомянутая функция, когда я использую симулятор iPhone 5, iPhone 4S или iPad 2, а также когда я пытаюсь загрузить его на iTouch 5-го поколения.

Сообщение об ошибке я получаю

'NSInternalInconsistencyException' Причина: 'CCPhysicsCollisionBegin делегат методы должны возвращать BOOL'

Может кто-нибудь посоветует мне, почему это может быть?

+0

Я смущен о случае 'cc' и' CC' в этом методе. Также, поскольку это быстрый вопрос, пометьте его тегом 'swift'. – trojanfoe

ответ

0

У меня была такая же проблема, и я нашел исправление для этого, чтобы изменить Кодекс Кокоса. Кажется, это ошибка в CCPhysicsNode.m из-за различий между Objective-C (BOOL) и Swift (Bool). Пока они не исправит ошибку, замените условие:

NSAssert((strcmp(returnType, @encode(BOOL)) == 0 || strcmp(returnType, "B") == 0), @"CCPhysicsCollisionBegin delegate methods must return a BOOL."); 

Надеюсь, это поможет кому-то.

1

Вы также можете вызвать функцию и вместо этого вернуть ObjCBool. Например: ccPhysicsCollisionBegin(pair: ...) -> ObjCBool{ return true }

Смежные вопросы