原创Blog,转载请注明出处
blog.csdn.net/hello_hwc
前言:写Swfit代码的时候经常会遇到各种各样的Pointer,有时候真的很混乱,这里整理一下。
对应C语言的指针作为返回值,变量和函数参数
对于类
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)
注意:
UnsafeMutablePointer如果是UnsafePointer,那么可以接受任何类型的Type
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所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)