0
A
답변
2
MTKMesh
및 은 클래스 (참조 유형)입니다. Swift에서 MTKMesh
유형의 변수 은 객체 인스턴스 에 대한 참조입니다. 즉, MTKMesh *
의 변수가 Objective-C에 무엇입니까? ,
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
처음 두 개의 어레이 요소가 동일한 객체 인스턴스를 참조하는 마지막 :
따라서단순히 배열의 각 요소 오브젝트 인스턴스에 대한 참조
var mtkMeshes: [MTKMesh] = []
var mdlMeshes: [MDLMesh] = []
를 선언 할 배열 요소는 다른 인스턴스를 참조합니다. (===
은 "identical-to" operator입니다.)
고마워요. 귀하의 Swift 동급 제품에서 Obj-C와 실제로 다른 배열을 미리 할당했음을 알았습니다. 컨텍스트의 경우 mdlMeshes를 inout 매개 변수로 사용하여 해당 배열을 할당하고 채우는 함수에 대한 코드 조각입니다. +1 "==="팁. – dugla
@dugla :'var mtkMeshes : [MDLMesh]? '를 선언하고 그 주소를 배열을 할당하고 채우는 함수'func foo (mesh : inout [MDLMesh]?)'에 전달할 수도 있습니다. –