Objective-cには、ポインターへのポインターの概念があります。最初のポインタを逆参照すると、元のポインタにアクセスできます
void makeFive(int *n) {
*n = 5;
}
int n = 0;
makeFive(&n);
// n is now 5
これがSwift 3にブリッジされると、UnsafeMutablePointerになります
func makeFive(_ n: UnsafeMutablePointer<Int>) {
n.memory = 5
}
var n: Int = 0
makeFive(&n)
// n is now 5
ただし、Swift 4の時点で、この動作は変更され、メモリプロパティは使用できなくなりました。
MakeFive(_ :)関数に相当するSwift 4)は何でしょうか?
更新Hamishのおかげで、「memory」の名前がpointeeに変更されたことがわかりました。
チェックしてください: https://developer.Apple.com/documentation/Swift/unsafemutablepointer
func makeFive(_ n: UnsafeMutablePointer<Int>) {
n.initialize(to: 5)
}
var n: Int = 0
makeFive(&n)
// n is now 5