资源是否在没有观察者时被释放?

时间:2018-02-23 18:01:13

标签: resources siesta-swift

资源是否在没有观察者时被释放? 我有一个场景,我想缓存一些图像,但显示它们的视图可能来来去去。如果我使用RemoteImageView来处理它自己对URL上键入的图像的观察,但是用户来回切换视图导致视图被重用,那么它将失去对正确图像的跟踪。

创建专用服务和EntityCache以确保图像不会立即从缓存中刷新是否合理?

任何其他建议将不胜感激。 THX

1 个答案:

答案 0 :(得分:0)

资源存在于内存中,直到(1)内存不足或(2)达到服务的最大缓存大小。

此时,资源引用变弱,导致当前未使用的任何资源引用被释放。但是,如果资源有任何观察者,并且如果这些观察者的所有者尚未被释放,那么该服务将挂起到该资源。

Memory Management section of the Siesta user guide对此进行了广泛讨论。