| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- //
- // CLSafeMutableArray.h
- // BuguLive
- //
- // Created by xfg on 2017/3/13.
- // Copyright © 2017年 xfg. All rights reserved.
- //
- #import <Foundation/Foundation.h>
- #include <pthread.h>
- #import <libkern/OSAtomic.h>
- #import <objc/message.h>
- @interface CLSafeMutableArray : NSObject
- {
- @protected
- // pthread_mutex_t _mutex;
- NSMutableArray *_safeArray;
- OSSpinLock _lock;
- }
- @property (nonatomic, strong) NSMutableArray *safeArray;
- - (id)objectAtIndex:(NSUInteger)index;
- - (BOOL)containsObject:(id)anObject;
- - (NSUInteger)indexOfObject:(id)obj;
- - (void)addObject:(id)anObject;
- - (void)insertObject:(id)anObject atIndex:(NSUInteger)index;
- - (void)removeLastObject;;
- - (void)removeObjectAtIndex:(NSUInteger)index;;
- - (void)replaceObjectAtIndex:(NSUInteger)index withObject:(id)anObject;
- - (void)insertObjectsFromArray:(NSArray *)otherArray atIndex:(NSInteger)index;
- - (void)addObjectsFromArray:(NSArray *)otherArray;
- - (void)exchangeObjectAtIndex:(NSUInteger)idx1 withObjectAtIndex:(NSUInteger)idx2;
- - (void)removeAllObjects;
- - (void)removeObject:(id)anObject inRange:(NSRange)range;
- - (void)removeObject:(id)anObject;
- - (void)removeObjectIdenticalTo:(id)anObject inRange:(NSRange)range;
- - (void)removeObjectIdenticalTo:(id)anObject;
- - (void)removeObjectsInArray:(NSArray *)otherArray;
- - (void)removeObjectsInRange:(NSRange)range;
- - (void)replaceObjectsInRange:(NSRange)range withObjectsFromArray:(NSArray *)otherArray range:(NSRange)otherRange;
- - (void)replaceObjectsInRange:(NSRange)range withObjectsFromArray:(NSArray *)otherArray;
- - (void)setArray:(NSArray *)otherArray;
- - (void)subArrayWithRange:(NSRange)range;
- - (void)insertObjects:(NSArray *)objects atIndexes:(NSIndexSet *)indexes;
- - (void)removeObjectsAtIndexes:(NSIndexSet *)indexes;
- - (void)replaceObjectsAtIndexes:(NSIndexSet *)indexes withObjects:(NSArray *)objects;
- - (void)setObject:(id)obj atIndexedSubscript:(NSUInteger)idx;
- - (NSInteger)count;
- @end
- // 增加去重操作
- @interface CLSafeSetArray : CLSafeMutableArray
- @end
|