23 #import <Foundation/Foundation.h>
28 #pragma mark Class Constants
38 #define SCCollectionClass @"SCCollection"
44 #define SCNotFound NSNotFound
101 id<SCCollectionDelegate> _delegate;
104 #pragma mark Свойства экземпляра класса
114 @property (nonatomic, readwrite, retain) NSString *name;
120 @property (nonatomic, readonly, assign)
SCIndex count;
126 @property (nonatomic, readonly, assign) BOOL empty;
132 @property (nonatomic, readwrite, assign) BOOL readOnly;
138 @property (nonatomic, readwrite, retain) id<SCCollectionDelegate> delegate;
144 @property (nonatomic, readonly, copy) NSString *typeName;
163 @property (nonatomic, readonly, assign) NSEnumerator *objectEnumerator;
169 @property (nonatomic, readonly, assign) NSEnumerator *reverseObjectEnumerator;
182 @property (nonatomic, readonly, assign)
SCArray *array;
188 @property (nonatomic, readonly, assign)
SCSet *set;
206 @property (nonatomic, readonly, assign)
SCStack *stack;
212 @property (nonatomic, readonly, assign)
SCQueue *queue;
230 @property (nonatomic, readonly, assign) NSArray *foundationArray;
236 @property (nonatomic, readonly, assign) NSSet *foundationSet;
242 @property (nonatomic, readonly, assign) NSOrderedSet *foundationOrderedSet;
248 @property (nonatomic, readonly, assign) NSDictionary *foundationDictionary;
273 @property (nonatomic, readonly, assign) BOOL isCollection;
279 @property (nonatomic, readonly, assign) BOOL isLibraryCollection;
285 @property (nonatomic, readonly, assign) BOOL isFoundationCollection;
291 @property (nonatomic, readonly, assign) BOOL isArray;
297 @property (nonatomic, readonly, assign) BOOL isLibraryArray;
304 @property (nonatomic, readonly, assign) BOOL isFoundationArray;
310 @property (nonatomic, readonly, assign) BOOL isSet;
316 @property (nonatomic, readonly, assign) BOOL isLibrarySet;
323 @property (nonatomic, readonly, assign) BOOL isFoundationSet;
329 @property (nonatomic, readonly, assign) BOOL isOrderedSet;
335 @property (nonatomic, readonly, assign) BOOL isLibraryOrderedSet;
343 @property (nonatomic, readonly, assign) BOOL isFoundationOrderedSet;
349 @property (nonatomic, readonly, assign) BOOL isDictionary;
355 @property (nonatomic, readonly, assign) BOOL isLibraryDictionary;
363 @property (nonatomic, readonly, assign) BOOL isFoundationDictionary;
369 @property (nonatomic, readonly, assign) BOOL isStack;
375 @property (nonatomic, readonly, assign) BOOL isQueue;
382 @property (nonatomic, readonly, assign) BOOL isList;
389 @property (nonatomic, readonly, assign) BOOL isSortable;
394 #pragma mark Initializing Collections
395 - (instancetype)initWithName:(NSString *)name;
396 - (instancetype)initWithCollection:(
id<
SCCollection>)collection;
399 #pragma mark Copying Collections
402 - (void)setObjects:(
id<
SCCollectioning>)object, ... NS_REQUIRES_NIL_TERMINATION;
405 #pragma mark Comparing Collections
406 - (BOOL)isEqualToCollection:(
id<
SCCollection>)collection;
407 - (BOOL)isEqual:(
id)object;
410 #pragma mark Objects Enumerators
414 - (void)reverseEnumerate;
415 - (NSUInteger)countByEnumeratingWithState:(NSFastEnumerationState *)state objects:(
id *)buffer count:(NSUInteger)count;
418 #pragma mark Adding Objects
420 - (void)addObjects:(
id<
SCCollectioning>)object, ... NS_REQUIRES_NIL_TERMINATION;
424 #pragma mark Removing Objects
425 - (void)removeAllObjects;
426 - (void)removeObjectsWithClass:(Class)oclass;
427 - (void)removeObjectsWithClassName:(NSString *)name;
430 - (void)removeObjects:(
id<
SCCollectioning>)object, ... NS_REQUIRES_NIL_TERMINATION;
433 #pragma mark Finding Objects in a Collection
435 - (BOOL)containsObjects:(
id<
SCCollectioning>)object, ... NS_REQUIRES_NIL_TERMINATION;
436 - (BOOL)containsCollection:(
id<
SCCollection>)collection;
437 - (BOOL)containsAnyObject:(
id<
SCCollectioning>)object, ... NS_REQUIRES_NIL_TERMINATION;
438 - (BOOL)containsAnyObjectFromCollection:(
id<
SCCollection>)collection;
441 #pragma mark Detecting Collection Type
442 + (BOOL)isCollectionClass:(NSString *)name;
443 + (BOOL)isLibraryCollectionClass:(NSString *)name;
444 + (BOOL)isFoundationCollectionClass:(NSString *)name;
445 + (BOOL)isArrayClass:(NSString *)name;
446 + (BOOL)isLibraryArrayClass:(NSString *)name;
447 + (BOOL)isFoundationArrayClass:(NSString *)name;
448 + (BOOL)isSetClass:(NSString *)name;
449 + (BOOL)isLibrarySetClass:(NSString *)name;
450 + (BOOL)isFoundationSetClass:(NSString *)name;
451 + (BOOL)isOrderedSetClass:(NSString *)name;
452 + (BOOL)isLibraryOrderedSetClass:(NSString *)name;
453 + (BOOL)isFoundationOrderedSetClass:(NSString *)name;
454 + (BOOL)isDictionaryClass:(NSString *)name;
455 + (BOOL)isLibraryDictionaryClass:(NSString *)name;
456 + (BOOL)isFoundationDictionaryClass:(NSString *)name;
457 + (BOOL)isStackClass:(NSString *)name;
458 + (BOOL)isQueueClass:(NSString *)name;
459 + (BOOL)isListClass:(NSString *)name;
460 + (BOOL)isSortableClass:(NSString *)name;
462 + (BOOL)isCollection:(
id)object;
463 + (BOOL)isLibraryCollection:(
id)object;
464 + (BOOL)isFoundationCollection:(
id)object;
465 + (BOOL)isArray:(
id)object;
466 + (BOOL)isLibraryArray:(
id)object;
467 + (BOOL)isFoundationArray:(
id)object;
468 + (BOOL)isSet:(
id)object;
469 + (BOOL)isLibrarySet:(
id)object;
470 + (BOOL)isFoundationSet:(
id)object;
471 + (BOOL)isOrderedSet:(
id)object;
472 + (BOOL)isLibraryOrderedSet:(
id)object;
473 + (BOOL)isFoundationOrderedSet:(
id)object;
474 + (BOOL)isDictionary:(
id)object;
475 + (BOOL)isLibraryDictionary:(
id)object;
476 + (BOOL)isFoundationDictionary:(
id)object;
477 + (BOOL)isStack:(
id)object;
478 + (BOOL)isQueue:(
id)object;
479 + (BOOL)isList:(
id)object;
480 + (BOOL)isSortable:(
id)object;
Unordered set class.
Definition: SCSet.h:72
Class for support the bidirectional lists of objects.
Definition: SCBidirectionalList.h:81
Unidirectional list class.
Definition: SCUnidirectionalList.h:80
Mutable collections protocol.
Definition: SCCollectionProtocols.h:597
Class SCObject header file.
Ordered set class.
Definition: SCOrderedSet.h:83
Parent class of all library classes.
Definition: SCObject.h:61
Collection types protocols header file.
Collections communications protocol.
Definition: SCCollectioning.h:79
Collections events handling class.
Definition: SCCollectionDelegate.h:526
Abstract collections class.
Definition: SCCollection.h:98
Stack of objects class.
Definition: SCStack.h:77
Queue of objects class.
Definition: SCQueue.h:83
Dictionary class.
Definition: SCDictionary.h:80
Array class.
Definition: SCArray.h:84
NSUInteger SCIndex
Definition: SCCollectionProtocols.h:53
SCCollectionType
Definition: SCCollectionProtocols.h:59