jiangleligejiang / JNote

记录相关日常笔记
0 stars 0 forks source link

集合相关优化 #13

Closed jiangleligejiang closed 5 years ago

jiangleligejiang commented 5 years ago

对象池的使用

针对一些需要频繁创建和移除对象(包括视图)的场景,可以考虑创建对象池,来避免性能上的损失。但要注意的一点是,在使用复用的对象前,一定作相关清理工作。


@property (nonatomic, copy) NSMutableSet *recyclePool;
jiangleligejiang commented 5 years ago

使用NSSet存储自定义对象,应该重写对象的isEqualTohash方法

因为NSSet需要保证对象的唯一性,而这个唯一性的判断是根据isEqualTohash方法来判断的。


- (void)commit {
if (!_target || !_selector) {
return;
}
YYTransactionSetup();
[transactionSet addObject:self];
}
jiangleligejiang commented 5 years ago

对于需要使用弱引用方式存储对象的情况下,可以考虑使用NSPointerArrayNSMapTableNSHashTable