iOS   发布时间:2022-03-30  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了ios – Obj-C:如何在没有密钥的情况下创建缓存大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试按需重用对象缓存.

它有点像UITableViewCell机制.当我需要一个新对象时,我将从池中获取一个(我不关心哪一个),如果没有可用的,我将创建一个新的放入缓存.当我完成它后,我会把它放回池中供以后使用.

NSCache是​​我所知道的最相似的类,但它是一个键/值缓存,所以它并不是我想到的.我不关心缓存给我的对象,我想从缓存中获取一个(任何一个),使用它,然后在我完成时将其放回去.

那么我应该将这种机制用于什么呢?

编辑:它不必来自iOS框架.我也对外部开源库开放.

编辑2:我将举一个例子来澄清:
假设我正在尝试创建一个蚁巢(缓存):巢内有大约10000只蚂蚁.

>当我需要食物时,我会抓住一只蚂蚁并告诉它出去吃食物(蚂蚁从缓存中移除).我不关心哪只蚂蚁做这项工作,因为他们都是我的蚂蚁.当它的任务完成后,蚂蚁将回到巢穴并留在那里,直到我给它一个新的命令.
>如果我的巢由于任何原因(缓存为空)已经用完了蚂蚁,我会告诉蚂蚁女王再繁殖一些.
>如果嵌套资源不足(收到内存警告),我希望过多的蚂蚁自行死亡(类似于NSCache的自动内存管理).
>如果没有资源危机,蚂蚁可以留在原地并等待我的订单(我是一个慷慨的上帝).

解决方法

使用NSCache.但是你不想处理NSCache的密钥.

所以Ant类是NSObject的子类.使用NSMutableSet来保存每个Ant的哈希值.有关哈希方法,请参阅NSObject协议参.

使用anyObject出队和addObject:从NSMutableSet中排队哈希值.使用hash作为NSCache objectForKey:的参数:

如果Ant对象总数大于NSUIntegers的NSMutableSet,则这仅节省内存.

这似乎比尝试使用NSCache的线程安全和自动删除创建自定义的NSMutableSet类更容易.

大佬总结

以上是大佬教程为你收集整理的ios – Obj-C:如何在没有密钥的情况下创建缓存全部内容,希望文章能够帮你解决ios – Obj-C:如何在没有密钥的情况下创建缓存所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。