我正在尝试缓存对象以按需重用。
它有点像UITableViewCell机制。当我需要一个新对象时,我将从池中获取一个对象(我不在乎哪个对象),如果没有可用对象,我将创建一个新对象放入缓存中。完成后,我会将其放回池中以备后用。
NSCache是我所知道的最相似的类,但是它是键/值缓存,因此它与我的想法并不完全相同。我不在乎缓存给我哪个对象,我只想从缓存中得到一个(任何一个),使用它,然后在完成后放回去。
那么我应该为这种机制使用什么呢?
编辑:不必来自iOS框架。我也对外部开源库开放。
编辑2:我将举一个例子来澄清:假设我正在尝试创建一个蚂蚁巢(缓存):巢中有大约10000个蚂蚁。
使用NSCache。但是,您不想处理NSCache的键。
因此Ant类是NSObject的子类。使用NSMutableSet容纳hash
每个蚂蚁。有关方法,请参见《NSObject协议参考》hash
。
用于从NSMutableSet中使哈希值anyObject
出队和addObject:
入队。使用哈希作为NSCache的参数objectForKey:
。
仅当Ant对象总数大于NSUIntegers的NSMutableSet时,这才节省内存。
这似乎比尝试使用NSCache的线程安全性和自动删除功能创建自定义的NSMutableSet类要容易。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句