2014-07-08 27 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:方法。

相關問題