这些指示之间有什么区别吗?

时间:2016-05-26 19:18:37

标签: swift

我有一个将UnsafeMutablePointer<T>转换为[T]的功能:

func convert<T>(pointer:UnsafeMutablePointer<T>, count:Int) -> [T] {
    let buffer = UnsafeMutableBufferPointer(start: pointer, count: count)
    return Array(buffer)
}

如果我有:

var pointArray:UnsafeMutablePointer<CGPoint> // A 10 element array

执行之间有什么区别:

convert(pointArray, count:10)[0]

pointArray[0]  

我相信没有人比另一个更安全,事实上,对于我正在做的事情,第二种方法更有效(当然也更简单)。

我是对的吗?

1 个答案:

答案 0 :(得分:1)

两者都不安全,你仍然不安全地访问内存地址,没有编译器保护。

但要小心,因为在使用pointArray

后仍需手动释放convert