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中的指针简单用法的主要内容,如果未能解决你的问题,请参考以下文章

片段中的 EditText 上的空指针异常 [重复]

片段中的空指针异常

Metalkit:MTLBuffer和swift 3中的指针

Python中的基本函数及其常用用法简析

活动到片段通信:当我尝试从活动更新片段中的文本视图时,出现空指针异常

swift常用代码片段