2016-12-08 111 views

cevap

12

Referansı geçti. Bunu test edebilirsin. Bildirin: Sonra

class A{} 
struct B { let a = A()} 

:

let b = B() 
print("A = \(unsafeAddressOf(b.a))")//0x0000600000019450 
let b_copy = b 
print("A = \(unsafeAddressOf(b_copy.a))")//0x0000600000019450 
5

Tüm özellikler kopyalanan bir yapının (Atanmış sanki (=) yeni yapının ilgili özelliğine eski yapının her bir özellik) struct ne olursa olsun, yapı kopyalandığında.

"Sınıf özniteliği" derken, bir başvuru türü değişkeni kastettiğinizi varsayar. (Bir sınıfla aynı ada sahip olan tür, o sınıfın nesnelerini işaret eden başvurular için bir başvuru türünü belirtir.) Bir referans türü (bir referans) değerini kopyalamak, aynı nesneyi işaret eden başka bir referans oluşturur. "Nesneler" in Swift'deki değerler olmadığını unutmayın - "nesne türleri" yoktur - daha ziyade nesneler, onlara işaret eden referanslar aracılığıyla her zaman manipüle edilir.