Это не безопасно, как в документе Apple или как в моем комментарии.
Если вы хотите сделать это каким-то безопасным способом, вам может понадобиться написать что-то вроде этого:
var number: UInt = 5
let size = MemoryLayout.size(ofValue: number)
withUnsafeMutableBytes(of: &number) {numberUmbp in
let numberPointer = numberUmbp.baseAddress!
let pointer: UnsafeMutablePointer<UInt8> = numberPointer.bindMemory(to: UInt8.self, capacity: size)
pointer[0] = 88
} //`pointer` (or `numberPointer`) is guaranteed to be valid only inside this closure
print(number) // 88
Конечно, указатель pointer
действителен только внутри замыкания.
Если вы хотите извлечь более стабильный и постоянный адрес, вы не можете избежать создания копий или буфера втекущая спецификация Swift.