Wie kann ich die Speicher-Adresse von einem Werttyp oder einer benutzerdefinierten Struktur in Swift?
Ich versuche, ein tieferes Verständnis von, wie Swift Kopien Wert-Typen:
Das Verhalten, das Sie sehen, in Ihren code immer so, wenn eine Kopie nahm
Platz. Jedoch, Swift führt nur eine tatsächliche Kopie hinter die kulissen
wenn es absolut notwendig ist, dies zu tun.
Voraus mein Verständnis, würde ich mag, um die Speicher-Adresse Wert Typ. Ich habe versucht, unsafeAddressOf(), aber das funktioniert nicht mit structs und es scheint zu wirken Swift-standard-Bibliothek-Typen Referenztypen (z.B. String umgewandelt wird, um NSString).
Wie kann ich die Speicher-Adresse von einem Wert hat, wie eine Instanz von Int, oder eine benutzerdefinierte Struktur, die in Swift?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Laut Martin R' s Antwort
Laut nschum die Antwort, die Sie bekommen können, die (Stapel) - Adresse eines struct, build-in-Typ oder Objekt-Referenz, wie diese:
Eine Sache, die ich fand, ist, wenn
myStruct
keinen Wert hat, wird die Adresse beibehalten gleichen:Swift 2.0 :
Können Sie diese
unsafeAddressOf(someObject)
oder im Swift-3.0:
verwenden
withUnsafePointer(to: someObejct) { print("\($0)") }
Ich bin mir nicht sicher ob es eine "empfohlene" Weg, das zu tun, aber eine Methode ist die Verwendung
withUnsafePointer(_:_:)
wie diese:Dieser gedruckten
0x00007ffff52a011c8
auf meinem Rechner.