Swift-UnsafePointer, UnsafeMutablePointer,AutoreleasingUnsafeMutablePointer

Swift-UnsafePointer, UnsafeMutablePointer,AutoreleasingUnsafeMutablePointer,第1张

概述原创Blog,转载请注明出处 blog.csdn.net/hello_hwc 前言:写Swfit代码的时候经常会遇到各种各样的Pointer,有时候真的很混乱,这里整理一下。 对应C语言的指针 作为返回值,变量和函数参数 对于类 UnsafePointer UnsafePointer作为函数参数,可以接受如下类型 nil 作为指向NULL的指针 UnsafePointer, UnsafeMutab

原创Blog,转载请注明出处
blog.csdn.net/hello_hwc

前言:写Swfit代码的时候经常会遇到各种各样的Pointer,有时候真的很混乱,这里整理一下。

对应C语言的指针

作为返回值,变量和函数参数

对于类

UnsafePointer

UnsafePointer作为函数参数,可以接受如下类型

nil 作为指向NulL的指针 UnsafePointer,UnsafeMutablePointer,或者 autoreleasingUnsafeMutablePointer,会自动进行转换 一个in-out 类型的变量,传入的是地址,这里的in-out指的就是取地址符号& [Type] Type类型的数组,传入的是数组开始的地址

举例:

unc testFunc(UnsafePointer<Int>){ }var a = 10var b:UnsafePointer<Int> = nilvar c = [1,2,3]testFunc(nil)testFunc(&a)testFunc(b)testFunc(c)

注意:

如果是UnsafePointer,那么可以接受任何类型的Type

UnsafeMutablePointer

UnsafeMutablePointer作为函数参数,可以传入

nil 作为指向NulL的指针 UnsafeMutablePointer类型的变量 一个in-out 类型的变量,传入的是地址,这里的in-out指的就是取地址符号& in-out [Type],传入的是数组开始的地址

举例

func testFunc(UnsafeMutablePointer<Int>){}var a = 10var b:UnsafeMutablePointer<Int> = nilvar c = [1,2,3]testFunc(nil)testFunc(&a)testFunc(b)testFunc(&c)
autoreleasingUnsafeMutablePointer

autoreleasingUnsafeMutablePointer作为函数参数,可以传入

nil 作为指向NulL的指针 autoreleasingUnsafeMutablePointer类型的变量 in-out变量(这里的 *** 作是在一个临时的缓冲区上, *** 作完成后拷贝到这个变量)
举例
func testFunc(x: autoreleasingUnsafeMutablePointer<Nsstring?>) {}var a:Nsstring? = nilvar b:autoreleasingUnsafeMutablePointer<Nsstring?> = niltestFunc(nil)testFunc(&a)testFunc(b)
总结

以上是内存溢出为你收集整理的Swift-UnsafePointer, UnsafeMutablePointer,AutoreleasingUnsafeMutablePointer全部内容,希望文章能够帮你解决Swift-UnsafePointer, UnsafeMutablePointer,AutoreleasingUnsafeMutablePointer所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1087622.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-27
下一篇 2022-05-27

发表评论

登录后才能评论

评论列表(0条)

保存