不兼容的类型'双'

时间:2011-10-17 15:27:34

标签: objective-c

我正在分配一个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 个答案:

答案 0 :(得分:1)

floor返回double。在某些平台上,CGFloatfloatanimatedDistance应该输入为double(如果需要,您可以将其转换为CGFloat

答案 1 :(得分:0)

使用它来获取矢量... CGpoint vector = ccpSub(cgpoint 1, cgpoint 2); 如果你想要double / float值,那么这样做:

CGpoint.location

无论你想要找到的坐标是什么,然后将浮点数分配给CGPoint.location.y,将另一个浮点数分配给CGPoint.location.x

顺便说一句,你需要cocos2d。我想。

答案 2 :(得分:0)

听起来像是你声称animatedDistance持有某种指针(例如NSNumber *)或结构(例如CGSize)。无论哪种方式,您都无法在那里分配CGFloat

如果animatedDistance包含NSNumber对象,请在值周围创建一个。回到你提出这个问题的时候,这样做的方法是[NSNumber numberWithDouble:floor(…)]。现在,您可以使用@(floor(…))

如果animatedDistance拥有CGSize或其他结构,您将不得不自己决定如何有意义地从您拥有的单个数字转换为您想要的结构类型。