Cocoa对象的链接列表

时间:2012-01-04 05:46:35

标签: objective-c ios linked-list

我是Obj-C和Cocoa的新手,并试图弄清楚如何在ARC之前和之后做一个排序的对象链接列表。

我的班级会像

@interface Node : NSObject
{
    int value;
    NSValue *item;
    Node *next;
}

property (strong, non atomic) value;
...

通过扫描节点列表并通过比较节点的value属性来查找插入点,即可完成输入新项目。 我遇到麻烦的地方是我想从列表中删除一个项目。我的代码就像

...
Node *prevPtr = nil;
Node *curPtr = head;
while (curPtr != nil) {
    if (some-condition) {
        prevPtr.next = curPtr.next;
        [curPtr release]; // cannot do with ARC
    }
}
  1. 这种编码模式是否与Cocoa兼容?
  2. 在ARC下,我的对象何时/何时被释放/取消分配?

1 个答案:

答案 0 :(得分:6)

代码是相同的,除了在ARC中你只需删除'release'行。编译器将隐式地为您添加它作为ARC编译的一部分。相信它做正确的事。