在Swift中使用GLKit中的GLKMath

时间:2014-07-08 01:43:49

标签: ios swift frameworks glkit

所以我正在使用一本名为iOS Games的书,来自Ray Wenderlich的教程,并试图利用那里找到的一些Objective-C代码来加速度计控制我游戏中的角色。而不是Objective-C,我想使用Swift。我在尝试创建一个GLKVector3类型的var时遇到了一个问题,它代表了一个3D矢量。当我输入时:

var raw:GLKVector3 = GLKVector3Make(irrelevant stuff)

我收到以下错误:

使用模块GLKVector3作为类型。

我在我的swift文件顶部有一个导入GLKit:

import GLKit

如何获取GLKMath文件中的功能以便在我的程序中使用?

3 个答案:

答案 0 :(得分:8)

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

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

  

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

答案 1 :(得分:3)

昨天(2015年2月8日)发布了Xcode 6.3 / Swift 1.2测试版,现在可以使用Swift的GLKit。

答案 2 :(得分:2)

在这里检查我的回购:https://github.com/noxytrux/SwiftGeom我实际上为此构建了一个完整的库,因此您不再被迫使用GLKit或等待Apple在swift中实现它。