Scott Goodson c3fb665ec1 [ASWeakSet] Support -allObjects to return a retained array of contents.
Use this array while enumerating ASRangeController instances in response to UIApplication notifications,
as it is possible for these events to trigger the mutation of the ASWeakSet and cause an enumeration error.
2016-03-10 16:20:21 -08:00

43 lines
1.0 KiB
Objective-C

//
// ASWeakSet.h
// AsyncDisplayKit
//
// Created by Adlai Holler on 1/7/16.
// Copyright © 2016 Facebook. All rights reserved.
//
#import <Foundation/Foundation.h>
NS_ASSUME_NONNULL_BEGIN
@interface ASWeakSet<__covariant ObjectType> : NSObject<NSFastEnumeration>
/// Returns YES if the receiver is empty, NO otherwise.
@property (nonatomic, readonly, getter=isEmpty) BOOL empty;
/// Returns YES if `object` is in the receiver, NO otherwise.
- (BOOL)containsObject:(ObjectType)object;
/// Insets `object` into the set.
- (void)addObject:(ObjectType)object;
/// Removes object from the set.
- (void)removeObject:(ObjectType)object;
/// Removes all objects from the set.
- (void)removeAllObjects;
/// Returns a standard *retained* NSArray of all objects. Not free to generate, but useful for iterating over contents.
- (NSArray *)allObjects;
/**
How many objects are contained in this set.
NOTE: This method is O(N). Consider using the `empty`
property.
*/
@property (nonatomic, readonly) NSUInteger count;
@end
NS_ASSUME_NONNULL_END