2

我想实现一个名为“XXXList”的对象,它将返回一个集合(不是 NSArray 子类),这样我就可以像 NSArray 一样使用它:

XXXList *list = [XXXList list];

for(id object in list)
{
    ......
}
4

2 回答 2

3

你可以用NSArrays 做几件事,我将列出我认为可能是你所追求的两个:

首先,您可以使用for…in循环(NSFastEnumeration)进行迭代,其次您可以使用索引下标表示法(类似于list[2])。幸运的是,这两种方法也可用于其他类型的对象,您只需要实现它们即可。

实现 NSFastEnumeration 并不是那么简单,我建议阅读Mike Ash 的 NSBlog 帖子

另一方面,实现下标符号非常简单,您只需要实现两种方法。

有吸气剂:

 - (id)objectAtIndexedSubscript: (NSUInteger)index;

和二传手

 - (void)setObject: (id)obj atIndexedSubscript: (NSUInteger)index;

也有一个NSBlog 帖子

于 2013-05-30T10:03:34.023 回答
2

如果要使用自己的类,则需要实现NSFastEnumeration 。

于 2013-05-30T10:03:36.070 回答