2014-07-08 26 views
0

我正在将一些Objective C代码转换为Swift for SceneKit(逐行)。我在Objective-C中发现了这一行代码,我似乎无法弄清楚它的含义。这个初始化中的方括号在目标C中做了什么?

SCNMatrix4 _cameraHandleTransforms[SLIDE_COUNT]; 

它来自这里:https://developer.apple.com/library/prerelease/ios/samplecode/SceneKitReel/Listings/SceneKitReel_AAPLGameViewController_m.html
我的理解是创造一个SCNMatrix4,我知道SLIDE_COUNT是一个常数,它解析为10。我不知道在这种情况下方括号是怎么做的。我不认为有任何数组访问发生。 Swift抱怨说,它没有SCNMatrix4的下标访问权限,这在我检查Swift库时是有意义的。

+0

您是手动转换此代码还是自动执行此操作? – ravron

+0

@Riley我正在阅读Obj-C代码并逐行将其转换为Swift。它来自这里:https://developer.apple.com/library/prerelease/ios/samplecode/SceneKitReel/Introduction/Intro.html – Johnston

+2

你知道C或者其他常见的编程语言吗?这是一个数组! –

回答

3

你正在看到一个C风格的静态大小的数组声明。此行声明大小为SLIDE_COUNT的类型为SCNMatrix4的C数组。

当你试图翻译它时,Swift会感到困惑,因为它认为你试图在类型为SCNMatrix4上使用下标访问,这是一个普通的旧C结构。见the Apple docs on that type更多细节,并记住:

你不能有Objective-C的Ç

1

它声明了一个SCNMatrix4结构数组。数组的大小是SLIDE_COUNT。

稍后在该文件(SceneKitReel/AAPLGameViewController.m)中,它访问_cameraHandleTransforms数组中的各个项目。查看setupEnvironment和presentStep:方法。

相关问题