3

In one of my app. i am facing issue of app crash because of i am unable to clean memory of node material diffuse content. when i am trying load node at that time memory is keeping up so i want clear memory whenever remove node from parent. please suggest approbate solution.

Here is below my code:

let recomondationView = viewRecomodation as! THARRecomondationsView
planeGeoMetryP1.firstMaterial?.diffuse.contents = UIImage.imageWithView(view: recomondationView)
oldAnnotationNode.name = name
oldAnnotationNode.geometry = planeGeoMetryP1

let billboardConstraint = SCNBillboardConstraint()
billboardConstraint.freeAxes = SCNBillboardAxis.Y
self.constraints = [billboardConstraint]
self.addChildNode(oldAnnotationNode)

Here is method of convert UIView to UIImage

extension UIImage {
    class func imageWithView(view: UIView) -> UIImage {
        var image = UIImage()
            UIGraphicsBeginImageContextWithOptions(view.frame.size, true, 1.0)
            let renderer = UIGraphicsImageRenderer(size: view.bounds.size)
            image = renderer.image { ctx in
                view.drawHierarchy(in: view.bounds, afterScreenUpdates: true)
            }
            UIGraphicsEndImageContext()
        return image
    }
}

Here is the code that i am using to remove node from parent

if let index = self.sceneNode?.childNodes.index(of: locationNode) {
    self.sceneNode?.childNodes[index].geometry = nil
    self.sceneNode?.childNodes[index].removeFromParentNode()
}
Andy Jazz
  • 49,178
  • 17
  • 136
  • 220
imjaydeep
  • 878
  • 1
  • 11
  • 34

0 Answers0