Вчера я обновил Xcode до последней версии (5.1 (5B130a))
для совместимости с iOS 7.1
. Затем я создаю свой проект, я получаю ошибку "Cast from pointer to smaller type 'int' loses information"
в файле EAGLView.mm
(line 408
), когда выбраны 64-разрядные симуляторы (например, iPhone Retina 4-inch 64-bit).
Я использую cocos2d-x-2.2.2
. Прежде чем я обновляю Xcode, мой проект все еще может нормально работать и работать со всеми устройствами.
Спасибо за рекомендацию.
Обновление: сегодня я загружаю последнюю версию cocos2d-x (cocos2d-x 2.2.3). Но проблема все еще произошла.
Вот фрагмент кода, в котором происходит эта ошибка:
/cocos2d-x-2.2.2/cocos2dx/platform/ios/EAGLView.mm:408:18: Cast from pointer to smaller type 'int' loses information
// Pass the touches to the superview
#pragma mark EAGLView - Touch Delegate
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
if (isKeyboardShown_)
{
[self handleTouchesAfterKeyboardShow];
return;
}
int ids[IOS_MAX_TOUCHES_COUNT] = {0};
float xs[IOS_MAX_TOUCHES_COUNT] = {0.0f};
float ys[IOS_MAX_TOUCHES_COUNT] = {0.0f};
int i = 0;
for (UITouch *touch in touches) {
ids[i] = (int)touch; // error occur here
xs[i] = [touch locationInView: [touch view]].x * view.contentScaleFactor;;
ys[i] = [touch locationInView: [touch view]].y * view.contentScaleFactor;;
++i;
}
cocos2d::CCEGLView::sharedOpenGLView()->handleTouchesBegin(i, ids, xs, ys);
}