mutable对象的copy 2.3、浅拷贝与深拷贝 2.4 、单层深拷贝 三、 集合(Collections) 3.1、NSMapTable 3.2、NSHashTable 3.3、NSPointerArray 但是有时候不希望集合对象对存储的对象进行引用计数,这个时候就可以用到NSMapTable/NSHashTable/NSPointerArray。 removeDelegate:(id<UserAuthNotifierDelegate>)delegate { [self.delegates removeObject:delegate]; } 3.3、NSPointerArray 类似与NSArray ,NSPointerArray可以默认成 mutable的,而且可以插入空值nil,我们可以设置存储对象是否引用 [NSPointerArray strongObjectsPointerArray ];// 强引用 [NSPointerArray weakObjectsPointerArray]; // 弱引用
newPromise = [PMKPromise new:^(PMKPromiseFulfiller fulfiller, PMKPromiseRejecter rejecter){ NSPointerArray *results = nil; #if TARGET_OS_IPHONE results = [NSPointerArray strongObjectsPointerArray ]; #else if ([[NSPointerArray class] respondsToSelector:@selector(strongObjectsPointerArray )]) { results = [NSPointerArray strongObjectsPointerArray]; } else { #pragma push #pragma clang diagnostic ignored "-Wdeprecated-declarations" results = [NSPointerArray
black dragon animal 4: white dragon */ 弱引用的 Swift 数组 Swift 里的数组默认会强引用里面的元素,但是有时候可能希望能够弱引用,那么就可以使用 NSPointerArray let strongArr = NSPointerArray.strongObjects() // 强引用 let weakArr = NSPointerArray.weakObjects() // Maintains
比如框架依赖了 EasySequence,这个东西对于 EasyReact 来说没有太大意义,弱引用容器也可以用NSPointerArray替代;EasyTuple 元祖的实现有些复杂了,如果是个人框架的话建议使用
此外,你无法在ARC下创建 NSHashTable、NSMapTable 和 NSPointerArray 类的实例的weak弱引用。