在Swift中使用GLKit中的GLKMath

DSh*_*aar 12 frameworks ios glkit swift

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

var raw:GLKVector3 = GLKVector3Make(irrelevant stuff)
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

使用模块GLKVector3作为类型.

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

import GLKit
Run Code Online (Sandbox Code Playgroud)

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

Nat*_*ook 8

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

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

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

  • 据我所知,不是今天的Swift.他们可能会在即将推出的版本中实施工会,但我还没有看到任何相关内容.[提交错误报告!](https://bugreport.apple.com) (3认同)