Сохранить цикл в физике ScnnodeIOS

Программируем под IOS
Anonymous
Сохранить цикл в физике Scnnode

Сообщение Anonymous »

У меня есть помощник UTIL, который добавляет физику в узле: < /p>

Код: Выделить всё

  @discardableResult
public static func addPhysicsBody(to node: SCNNode, type: SCNPhysicsBodyType) -> SCNPhysicsBody {
// Here I use SCNPhysicsShape(node:) API
let shape = SCNPhysicsShape(node: node)
let body = SCNPhysicsBody(type: type, shape: shape)
node.physicsBody = body
return body
}
< /code>
Кажется, есть цикл удержания. Даже если я удаляю узел из родителей, узел все еще находится в памяти. < /P>
Однако, если я изменю код на: < /p>
  @discardableResult
public static func addPhysicsBody(to node: SCNNode, type: SCNPhysicsBodyType) -> SCNPhysicsBody {
// Here I change to SCNPhysicsShape(geometry:) API
let shape =  SCNPhysicsShape(geometry: node.geometry!)
let body = SCNPhysicsBody(type: type, shape: shape)
node.physicsBody = body
return body
}
< /code>
Это решает цикл удержания - после удаления узла из родителя, узел больше не в памяти. < /p>
Я подозреваю, что цикл сохраняется by scnphysicsshape (node: node) 
api (https://developer.apple.com/documentati ... shape/init(node:options :)), где Узел сохраняет тело физики, которое сохраняет Форма, которая сохраняет узел .
Однако я чувствую себя ошеломленным, что Apple не осознает такой очевидный цикл удержания, что заставляет меня сомневаться в себе. Я использовал API неправильно?

Подробнее здесь: https://stackoverflow.com/questions/793 ... hysicsbody

Вернуться в «IOS»