Xcode中'deinitialize()'废弃警告:如何显式指定count参数?
解决Xcode 9.3中
deinitialize()的废弃警告 别担心,这是Swift 4.1(随Xcode 9.3发布)里的一个简单变更——Apple移除了deinitialize()的默认count参数,现在你必须显式指定要销毁的元素数量。
具体修改方式:
- 把你原来的
pointer.deinitialize()调用替换成pointer.deinitialize(count: <元素数量>),其中<元素数量>是你的指针指向的内存块中已初始化的元素个数。
代码示例:
修改前(会触发警告):
let intPointer = UnsafeMutablePointer<Int>.allocate(capacity: 4) // 这里做一些元素初始化操作... intPointer.deinitialize() // 此处出现废弃警告 intPointer.deallocate()
修改后(警告消除):
let intPointer = UnsafeMutablePointer<Int>.allocate(capacity: 4) // 这里做一些元素初始化操作... intPointer.deinitialize(count: 4) // 显式传入分配的容量(或实际初始化的元素数) intPointer.deallocate()
重要提示:
- 如果你没有初始化所有分配的内存容量(比如分配了4个位置,但只初始化了2个元素),一定要传入实际已初始化的元素数量(比如
count: 2),而不是总容量。这样才能确保只有已正确初始化的对象被安全销毁,避免内存问题。
内容的提问来源于stack exchange,提问作者user3151675
相关产品推荐
相关产品推荐

