swift3 UnsafePointer指针如何销毁

深海飞鸟 2017-07-05 05:44:44
let str_QueryServerDID1 = @"abcd"
// String转换为CChar
let char_QueryServerDID1:[CHAR] = str_QueryServerDID1.cString(using: String.Encoding.utf8)!
//CChar转换为字符串指针
let UnsafeMPtrDID1 = UnsafeMutablePointer<CHAR>.allocate(capacity: char_QueryServerDID1.count)
UnsafeMPtrDID1.initialize(from: (char_QueryServerDID1), count: char_QueryServerDID1.count)
let UnsafePtrDID1 = UnsafePointer<CHAR>.init(UnsafeMPtrDID1)

因为我需要生成UnsafeMutablePointer<UnsafePointer<CHAR>?>类型的参数已使用C的API,所以制造了UnsafePointer<CHAR>的指针,但是最后发现UnsafePointer<CHAR>不知道如何释放指针!现在因为这个造成内存泄漏App挂了,log如下:
malloc: *** error for object 0x6000002065d0: Invalid pointer dequeued from free list
*** set a breakpoint in malloc_error_break to debug

所以,请教下各位大大有什么办法可以释放UnsafePointer指针吗?
...全文
952 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
watermelon_ 2017-07-18
  • 打赏
  • 举报
回复
手动分配才需要手动销毁
深海飞鸟 2017-07-18
  • 打赏
  • 举报
回复
只有手动分配才需要手动销毁

1,420

社区成员

发帖
与我相关
我的任务
社区描述
Swift,苹果于2014年WWDC(苹果开发者大会)发布的新开发语言,可与Objective-C共同运行于MAC OS和iOS平台,用于搭建基于苹果平台的应用程序。
swift 技术论坛(原bbs)
社区管理员
  • Swift
  • 网罗开发
  • 大熊猫侯佩
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧