gpt4 book ai didi

ios - 删除数组中的 View 和引用

转载 作者:行者123 更新时间:2023-11-30 11:46:32 25 4
gpt4 key购买 nike

目前正在开发一个视频 session 应用程序,我们在其中添加/删除当用户加入或离开时具有视频/OpenGL 显示的 subview 。我们在类中的数组中跟踪 View 。当我们删除 subview 和数组引用时,我们在 GL ASM 代码中收到 BAD_ACCESS。注释掉 self.streams.remove(at: index) 将使其正常工作。

func add(stream: StreamType, withView streamView: StreamViewType? = nil) -> Bool {

if !self.has(streamId: stream.streamId) {
let view = streamView ?? StreamViewType(stream: stream, userId: self.userId, delegate: self)
let insertAt = view.stream.isLocal ? self.streams.count : 0

self.streams.append(view)
self.streamViews.insertSubview(view as! UIView, at: insertAt)
self.delegate?.layoutManager(layoutOnly: true)
return true
}
return false
}

func remove(streamId: String?) -> StreamViewType? {

if let index = self.indexOf(streamId: streamId) {
let streamView = self.streams[index]
streamView.removeFromSuperview()
self.streams.remove(at: index)
self.delegate?.layoutManager(layoutOnly: true)
return streamView
}
return nil
}

这似乎是某种竞争条件。有什么想法吗?

最佳答案

在解除分配 View 时,openGL 代码中似乎存在错误。

StreamViewType是如何实现的?

在释放 View 时,您是否拆除了 EAGLContext?

关于ios - 删除数组中的 View 和引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48774831/

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