美文网首页
NSEnumerator.h

NSEnumerator.h

作者: ShenYj | 来源:发表于2016-09-09 18:20 被阅读16次
    /*  NSEnumerator.h
        Copyright (c) 1995-2015, Apple Inc. All rights reserved.
     */
    
    #import <Foundation/NSObject.h>
    
    @class NSArray<ObjectType>;
    
    NS_ASSUME_NONNULL_BEGIN
    
    /*
     * The fast enumeration protocol NSFastEnumeration is adopted and
     * implemented by objects wishing to make use of a fast and safe
     * enumeration style.  The language "foreach" construct then can
     * be used with such objects.
     *
     * The abstract class NSEnumerator itself is taught how to do this
     * for convenience by using -nextObject to return items one at a time.
     */
    
    typedef struct {
        unsigned long state;
        id __unsafe_unretained __nullable * __nullable itemsPtr;
        unsigned long * __nullable mutationsPtr;
        unsigned long extra[5];
    } NSFastEnumerationState;
    
    @protocol NSFastEnumeration
    
    - (NSUInteger)countByEnumeratingWithState:(NSFastEnumerationState *)state objects:(id __unsafe_unretained [])buffer count:(NSUInteger)len;
    
    @end
    
    @interface NSEnumerator<ObjectType> : NSObject <NSFastEnumeration>
    
    - (nullable ObjectType)nextObject;
    
    @end
    
    @interface NSEnumerator<ObjectType> (NSExtendedEnumerator)
    
    @property (readonly, copy) NSArray<ObjectType> *allObjects;
    
    @end
    
    NS_ASSUME_NONNULL_END
    

    相关文章

      网友评论

          本文标题:NSEnumerator.h

          本文链接:https://www.haomeiwen.com/subject/iczeettx.html