我想实现一个名为“XXXList”的对象,它将返回一个集合(而不是NSArray子类),这样我就可以像NSArray一样使用它了:
XXXList *list = [XXXList list];
for(id object in list)
{
......
}
答案 0 :(得分:3)
你可以用NSArray
做几件事,我会列出我认为你可能会追求的两件事:
首先,您可以使用for…in
循环(NSFastEnumeration)进行迭代,其次可以使用索引下标符号(类似list[2]
)。幸运的是,这两个对象也可用于其他类型的对象,您只需要实现它们。
实施NSFastEnumeration并非如此微不足道,我建议您阅读Mike Ash’s NSBlog post。
另一方面,实现下标符号非常简单,只需要实现两种方法。
有吸气剂:
- (id)objectAtIndexedSubscript: (NSUInteger)index;
和二传手
- (void)setObject: (id)obj atIndexedSubscript: (NSUInteger)index;
答案 1 :(得分:2)
如果您想使用自己的课程,则需要实施NSFastEnumeration。