gpt4 book ai didi

ios - 在 Swift 中动态更改 SCNView 的背景

转载 作者:行者123 更新时间:2023-11-28 07:33:57 25 4
gpt4 key购买 nike

我正在制作一个 iOS 应用程序,其本质部分是通过 TCP 逐帧接收 JPEG 图像。

应用程序的另一部分有一个 ARSCNView,需要根据这些帧动态设置其背景。

我的伪代码是这样的:

while(phase == 1) {
let bytes = try tcpSocket.read(into: &jpegData)
sceneView.scene.background.contents = UIImage(data: jpegData)

// or the other way

let bgempty = backgroundImage == nil
backgroundImage = UIImage(data: jpegData)
if(bgempty) {
sceneView.scene.background.contents = backgroundImage
}
}

差不多就这些了。无论哪种方式,此循环都会造成内存泄漏。当我使用 CGImage

时相同

如何为 ARSCNView 分配不断变化的背景,避免内存泄漏?

最佳答案

一个解决方案是使用 autoreleasepool堵塞。这可以确保内存占用保持最小。您使用的循环占用了大量设备内存,要优化此代码,您可以添加自动释放池,如下所示:

while(phase == 1) {
autoreleasepool {
let bytes = try tcpSocket.read(into: &jpegData)
sceneView.scene.background.contents = UIImage(data: jpegData)

// or the other way

let bgempty = backgroundImage == nil
backgroundImage = UIImage(data: jpegData)
if(bgempty) {
sceneView.scene.background.contents = backgroundImage
}
}
}

关于ios - 在 Swift 中动态更改 SCNView 的背景,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53768515/

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