![]() |
1
18
这是迄今为止我找到的最好的解决办法。基本思想是使用调度队列的终结器。当分派队列退出时,我们可以确定在处理样本缓冲区的第二个线程中不会有任何操作。
不幸的是,我现在必须明确停止捕捉。否则释放我的实例不会释放它,因为第二个线程现在也会增加和减少计数器。
|
![]() |
2
4
我在苹果开发者论坛上发布了一个非常类似的问题,得到了一位苹果员工的回答。他说这是一个已知的问题:
我仍然更喜欢使用dispatch queue finalizer的方法,因为这段代码只是猜测第二个线程何时完成。 |
![]() |
3
3
根据当前苹果文件(
1
)
|
![]() |
4
2
解决了的! 可能是初始化会话时的一系列动作。这个对我有用:
|
|
5
2
使用队列终结器,可以为每个队列使用dispatch\信号量,然后在完成后继续执行清理例程。
请记住,必须将AVCaptureVideoDataOutput/AVCaptureAudioDataOutput对象示例缓冲区委托设置为nil,否则它们永远不会释放关联的队列,因此在释放AVCaptureSession时永远不会调用终结器。
|
![]() |
6
2
在弹出和推送任何其他视图之前,我调用了这个函数。它解决了我的低内存警告问题。 |
![]() |
7
1
它的工作,但请让我知道,如果你看到任何把戏。我更喜欢异步使用它。 谢谢 |
![]() |
WkWk · Apple Watch动作通知不起作用 3 年前 |
![]() |
Otavio Miguel · 在手机中保留我自己未发布的ios应用 3 年前 |
![]() |
Nico Passaglia · 移动键盘向上移动站点 6 年前 |