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开始,这种行为已经改变,memory属性不再可用。
在Swift 4中,makeFive(_ :)函数的等效方式是什么?
更新: 感谢Hamish的帮助,我现在知道"memory"被重命名为pointee。
.pointee
来访问指针的值;但是这里不要使用UnsafeMutablePointer
。如果需要更改调用方的变量(这种情况应该不太常见),请使用inout
。 - Hamish