2016-11-12 61 views

回答

2

MTKMeshMDLMesh(參考類型)。 Swift中類型MTKMesh的變量 是對對象實例 的引用,即在Objective-C中MTKMesh *類型的變量是什麼。

因此可以簡單地聲明

var mtkMeshes: [MTKMesh] = [] 
var mdlMeshes: [MDLMesh] = [] 

該數組的每個元素是一個對象實例的引用:

let mesh1 = MDLMesh() 
let mesh2 = MDLMesh() 
mdlMeshes.append(mesh1) 
mdlMeshes.append(mesh1) 
mdlMeshes.append(mesh2) 

print(mdlMeshes[0] === mdlMeshes[1]) // true 
print(mdlMeshes[0] === mdlMeshes[2]) // false 

前兩個陣列元件引用相同的對象實例,所述 最後數組元素引用一個不同的實例。 (是"identical-to" operator)。

+0

謝謝馬丁。在你的Swift中,我注意到你已經預先分配了實際上與Obj-C不同的數組。對於上下文來說,這是代碼片段,它使用mdlMeshes作爲分配和填充該數組的函數的inout參數。 ''===「提示+1。 – dugla

+1

@dugla:您還可以聲明'var mtkMeshes:[MDLMesh]?'並將其地址傳遞給函數func foo(meshes:inout [MDLMesh]?)',該函數分配並填充數組。 –