2010-01-17 43 views
1

Cocoa中是否有类似于循环链接列表的东西?Cocoa中的圆形链接列表

我知道NSArray是有序的 - 但我不认为我可以使用'nextItem'或'previousItem' - 正确吗?此外,我需要将最后一个项目的下一个项目作为第一个项目。

我可以添加自己的nextItem和previousItem方法,但是如果Apple没有实现适合的东西,我很惊讶。如果他们有,我找不到它。

回答

3

因为你可以使用一个类的行为添加到NSArray(如@darren建议),它可能是你实际上可能需要一个真正的循环缓冲区。如果是这种情况,请查看CHDataStructures框架。除了CHCircularBufferStack之外,还有CHCircularBufferQueueCHCircularBufferDeque

+0

是否有可能将NSArray绑定到CHData结构?如果是这样,这绝对值得一看。 – 2010-01-17 18:58:56

+0

NSArrayController,我的意思是。 – 2010-01-19 19:24:36

+1

我没有明确地编码这种行为,所以如果你不能,它还不支持。不过,我一直计划将抽象循环缓冲区父类转换为NSMutableArray的子​​类,这可能会免费提供一些此功能。 (免费给你,不是我作为作者...) – 2010-01-19 20:35:37

1

我不知道任何这样的循环列表数据结构。您关于手动实施它的想法似乎是一个好主意。我会用一个类别:

@implementation NSArray (myCircularList) 

-(id)nextItem; 
-(id)previousItem;