一尘不染

在Swift中使用GLKit中的GLKMath

swift

因此,我正在使用雷·温德利奇(Ray Wenderlich)的教程编写的一本名为iOS游戏的书,并尝试利用那里找到的一些Objective-
C代码来对游戏中角色的加速度计进行控制。我想使用Swift而不是Objective-C。尝试创建表示3D矢量的GLKVector3类型的var时遇到问题。当我输入:

var raw:GLKVector3 = GLKVector3Make(irrelevant stuff)

我收到以下错误:

使用模块GLKVector3作为类型。

我的GLKit的快速文件顶部有一个导入:

import GLKit

关于如何从GLKMath文件中获取功能以在程序中使用的任何想法?


阅读 243

收藏
2020-07-07

共1个答案

一尘不染

Swift在1.2版中增加了对联合的支持。即使使用声明,导入的并集中的字段也是只读的var,但可以根据需要在C函数中传入和传出。

Swift 1.2的发行说明暗示这些字段可能根本无法访问,但是至少对于以下GLKit类型,它们仍然可读:

Swift现在可以部分导入包含联合,位域,SIMD向量类型和Swift本机不支持的其他C语言功能的C聚合。不支持的字段将无法从Swift访问,但是具有参数和这些类型的返回值的C和Objective-C
API可以在Swift中使用。这包括基金会NSDecimal类型和GLKit GLKVectorGLKMatrix类型,等等。

2020-07-07