0

我正在将一些Objective C代码转换为Swift for SceneKit(逐行)。我在 Objective-C 中找到了这行代码,但我似乎无法弄清楚它的含义。

SCNMatrix4 _cameraHandleTransforms[SLIDE_COUNT]; 

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

4

2 回答 2

3

您将看到 C 风格的静态大小的数组声明。这一行声明了一个SCNMatrix4size 类型的C 数组SLIDE_COUNT

当您尝试翻译它时,Swift 会感到困惑,因为它认为您正在尝试对 type 使用下标访问SCNMatrix4,这是一个普通的旧 C 结构。有关更多详细信息,请参阅有关该类型的 Apple 文档,并记住:

没有C就不能拥有Objective- C

于 2014-07-08T20:34:08.400 回答
1

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

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

于 2014-07-08T20:34:05.873 回答