首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

NSEnumerator.h

NSEnumerator.h

/*  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)countByEnumeratingWithStateNSFastEnumerationState *)state objectsid __unsafe_unretained [])buffer countNSUInteger)len;

@end

@interface NSEnumerator<ObjectType> : NSObject <NSFastEnumeration>

- (nullable ObjectType)nextObject;

@end

@interface NSEnumerator<ObjectType> (NSExtendedEnumerator)

@property (readonly, copy) NSArray<ObjectType> *allObjects;

@end
返回列表