首页 > 解决方案 > UnsafeRawPointer 给出悬空指针警告

问题描述

要在 SceneKit 中绘制自定义对象,我们需要这个

    let indices:[Int32] = [0, 1, 2, 3, 4, 5]
    let pointer = UnsafeRawPointer(indices)
    let indexData = NSData(bytes: pointer, length: MemoryLayout<Int32>.size * indices.count)

        let pointer = UnsafeRawPointer(indices)

给出 'UnsafeRawPointer' 的初始化导致悬空指针警告。

所以我该怎么做 ?

在我们使用这段代码创建 SCNGeometry 之后,SceneKit 是否仍在使用内存指针点中的这个位置,我想知道。

如果一旦创建了 SCNGeometry,就不再需要我们用来创建它的数据,考虑到 SceneKit 管理的几何内存,为什么我们会收到警告?

    let indexData = NSData(bytes: pointer, length: MemoryLayout<Int32>.size * indices.count)
    let element = SCNGeometryElement(data: indexData as Data, primitiveType: .triangles, primitiveCount: indices.count, bytesPerIndex: MemoryLayout<Int32>.size)
    let geometry = SCNGeometry(sources: [vertexSource, normalSource], elements: [element])
    
 
    
    let node = SCNNode()
    node.geometry = geometry

标签: swiftpointersscenekit

解决方案


推荐阅读