将'float'传递给不兼容的'float *'类型

时间:2013-02-24 20:52:01

标签: iphone ios objective-c xcode vector

我正在尝试使用GLKVector3MakeWithArray方法创建一个矢量。

我收到以下错误,我有点疑惑为什么,“将'浮动'传递给不兼容的'浮动*'”

这是我的代码:

    [self.offsetArray addObject:[jsnmphset valueForKey:@"offset"]];

    // Create a Vector3f from the array offset stored in the nsdictionary
    GLKVector3 offset = GLKVector3MakeWithArray([[self.offsetArray objectAtIndex:0] floatValue]);

由于

2 个答案:

答案 0 :(得分:3)

GLKVector3MakeWithArray定义如下:

GLKVector3 GLKVector3MakeWithArray( float values[3] );

它采用三个浮点值的数组。你正在调用它,好像它是这样定义的:

GLKVector3 GLKVector3MakeWithArray( float value );

您传入的是一个浮动值。

你需要做这样的事情:

float values[3];

values[0] = [[self.offsetArray objectAtIndex:0] floatValue];
values[1] = [[self.offsetArray objectAtIndex:1] floatValue];
values[2] = [[self.offsetArray objectAtIndex:2] floatValue];

GLKVector3 offset = GLKVector3MakeWithArray( values );

现在,“”是否已正确设置取决于您的具体情况。

答案 1 :(得分:2)

GLKVector3MakeWithArray函数期望参数为float[3]类型。但是你试图传递一个float值。

从数组元素中创建正确的参数。