我有NSMutableArray
个GLfloat
的简单数组。
这就是我在Swift中构建它的方式:
var arrays = NSMutableArray()
for(i=0; i<arraysCount; i++) {
var array:[GLfloat] = []
// fill the array
arrays.appand(array)
}
但是如何通过Objective-C中的索引获取我的数组?
[arrays objectAtIndex:index]
给了我一个ID,但是如何将它转换为GLfloat数组?
我需要使用GLfloat数组,因为必须绘制这些数组,然后将它们发送到glBufferData()
。
答案 0 :(得分:2)
在objective-c中,您无法向NSMutableArray
添加简单的C类型NSMutableArray
只能包含objective-c对象。因此,当您致电[arrays objectAtIndex:index];
时,您获得的数组很可能是NSNumber
或NSValue
的数组。
在目标c中,您可以使用C样式数组,例如int myArr[5] = {1,2,3,4,5};
或NSArray
但您不能混用它们。因此,NSArray
int
NSArray *myArr = @[@1,@2,@3,@4,@5]
为@1
,其中NSNumber
为intValue
,float
为1。
因此,要将数组转换为float otherArr[(int)myArr.count];
for (int i = 0; i < myArr.count; i++) {
NSNumber *num = myArr[i];
otherArr[i] = myArr.floatValue;
}
// Voilia a C style array of floats
数组,您可以执行以下操作:
{{1}}
当你达到目标-c时,这就是Swift可以混淆的地方,因为我相信这一切都是隐含的。