Swift中的指针简单用法
Posted 想名真难
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Swift中的指针简单用法相关的知识,希望对你有一定的参考价值。
指针
Swift中指针分为两类:
typed pointer
:指定数据类型指针,UnsafePointer<T>
,T表示泛型
。raw pointer
:未指定数据类型指针(原生指针),UnsafeRawPointer
Swift
中的指针和 OC
中指针的对应关系如下:
UnsafePointer: 可以通过ptr.pointee获取value, 但是无法修改指针的值
UnsafeMutablePointer : 可以通过ptr.pointee修改和获取value
var age : Int = 10
func test1(ptr : UnsafePointer<Int>)
let value = ptr.pointee // 获取
print(value)
func test2(ptr : UnsafeMutablePointer<Int>)
ptr.pointee += 1 // 修改
print(ptr.pointee) // 获取
UnsafeRawPointer : 可以通过load来获取值, 需要指定获取值的类型, 不可以修改值
UnsafeMutableRawPointer : 可以通过load来获取值, 通过storeBytes来设置值, 都需要指定类型
var age : Int = 10
func test3(ptr : UnsafeRawPointer)
let value : Int = ptr.load(as: Int.self) // 获取
print(value)
func test4(ptr : UnsafeMutableRawPointer)
ptr.storeBytes(of: 20, as: Int.self) // 修改
let value : Int = ptr.load(as: Int.self) // 获取
print(value)
以上是关于Swift中的指针简单用法的主要内容,如果未能解决你的问题,请参考以下文章
Metalkit:MTLBuffer和swift 3中的指针