Obj-C - 如何将 id 转换为 GLfloat[]
Obj-C - how to cast id into GLfloat[]
我有 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()
。
在 objective-c 中,您不能向 NSMutableArray
添加简单的 C 类型 NSMutableArray
只能包含 objective-c 对象。因此,调用 [arrays objectAtIndex:index];
时得到的数组很可能是 NSNumber
或 NSValue
的数组。
在 objective c 中,您可以使用 C 样式数组,例如int myArr[5] = {1,2,3,4,5};
或 NSArray
s 但你不能混合使用它们。因此,int
的 NSArray
将是 NSArray *myArr = @[@1,@2,@3,@4,@5]
,其中 @1
是 NSNumber
对象,intValue
为 1.
因此,要将您的数组转换为 float
的数组,您可以执行以下操作:
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
这是 Swift 在您到达 objective-c 时可能会混淆的地方,因为我相信这一切都是隐式完成的。
我有 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()
。
在 objective-c 中,您不能向 NSMutableArray
添加简单的 C 类型 NSMutableArray
只能包含 objective-c 对象。因此,调用 [arrays objectAtIndex:index];
时得到的数组很可能是 NSNumber
或 NSValue
的数组。
在 objective c 中,您可以使用 C 样式数组,例如int myArr[5] = {1,2,3,4,5};
或 NSArray
s 但你不能混合使用它们。因此,int
的 NSArray
将是 NSArray *myArr = @[@1,@2,@3,@4,@5]
,其中 @1
是 NSNumber
对象,intValue
为 1.
因此,要将您的数组转换为 float
的数组,您可以执行以下操作:
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
这是 Swift 在您到达 objective-c 时可能会混淆的地方,因为我相信这一切都是隐式完成的。