gpt4 book ai didi

swift - 如果我在 Swift 中得到一个 UnsafeMutablePointer,我应该免费打电话吗?

转载 作者:搜寻专家 更新时间:2023-11-01 06:25:46 29 4
gpt4 key购买 nike

我在函数内部使用一个变量,它带有保留和 UnsafeMutablePointer<objc_property_t> .我应该调用free吗?在上面吗?

func logProps() {
var count: UInt32 = 0
let _propArr = class_copyPropertyList(cls, &count)
// ...
// free(propArr) // ?
}

换句话说,是 free与使用 deallocate 相同( Swift UnsafeMutablePointer: Must I call deinitialize before deallocate? ) ?

最佳答案

是的,因为方法的名称。 class_copyPropertyList 包含单词“copy”,表示缓冲区属于您。请注意 documentation也表明这一点:

You must free the array with free().

所以你应该使用free() 来销毁这个缓冲区。这目前与调用 .deallocate() 相同,but that is not promised ,所以请按照给定的说明进行操作。

(感谢 MartinR 解决了 free 与 deallocate 的问题。)

关于swift - 如果我在 Swift 中得到一个 UnsafeMutablePointer,我应该免费打电话吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55208125/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com