这个初始化中的方括号在Objective C中有什么作用?

时间:2014-07-08 20:24:09

标签: objective-c matrix swift scenekit

我正在为SceneKit(逐行)将一些Objective C代码转换为Swift。我在Objective-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库时是有意义的。

2 个答案:

答案 0 :(得分:3)

您正在看一个C风格的静态大小的数组声明。该行声明了一个大小为SCNMatrix4的{​​{1}}类型的C数组。

当你尝试翻译它时,Swift很困惑,因为它认为你试图在SLIDE_COUNT类型上使用下标访问,这是一个普通的旧C结构。有关详细信息,请参阅the Apple docs on that type,并记住:

没有 C ,你不能拥有 Objective-C

答案 1 :(得分:1)

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

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