Несовместимый тип "двойной" - PullRequest
2 голосов
/ 17 октября 2011

Я назначаю CGFloat animatedDistance и получаю эту ошибку.

Здесь я присваиваю значение animatedDistance

static const CGFloat KEYBOARD_ANIMATION_DURATION = 0.3;
static const CGFloat LANDSCAPE_KEYBOARD_HEIGHT = 140;

heightFraction - это также CGFloat.

if (orientation == UIInterfaceOrientationPortrait ||
    orientation == UIInterfaceOrientationPortraitUpsideDown)
{
   animatedDistance = floor(PORTRAIT_KEYBOARD_HEIGHT * heightFraction);
}
else
{
    animatedDistance = floor(LANDSCAPE_KEYBOARD_HEIGHT * heightFraction);
}

Какого типа должна быть анимированная картинка Кто-нибудь может мне помочь?

Ответы [ 3 ]

1 голос
/ 17 октября 2011

floor возвращает double. На некоторых платформах CGFloat - это float. animatedDistance должен быть напечатан как double (вы можете привести его к CGFloat при необходимости).

0 голосов
/ 15 февраля 2013

Звучит так, будто вы объявили animatedDistance держащим некоторый указатель, такой как NSNumber *, или структуру, такую ​​как CGSize.В любом случае, вы не можете назначить CGFloat.

Если animatedDistance содержит объект NSNumber, создайте его вокруг значения.Назад, когда вы задавали этот вопрос, способ сделать это был [NSNumber numberWithDouble:floor(…)].Теперь вы можете просто использовать @(floor(…)).

Если animatedDistance содержит CGSize или другую структуру, вам придется решить для себя, как осмысленно преобразовать однозначное число, которое вам нужновид структуры вы хотите.

0 голосов
/ 17 октября 2011

Используйте это, чтобы получить вектор ... CGpoint vector = ccpSub(cgpoint 1, cgpoint 2); И если вам нужны значения типа double / float, сделайте следующее:

CGpoint.location

для того, что вы пытаетесь найти координаты, затем назначьте число с плавающей точкой для CGPoint.location.y, а другое число с плавающей точкой для CGPoint.location.x

Кстати, для этого вам нужен cocos2d. Я думаю.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...