在Objective C中创建链接列表

Ina*_*uin 9 iphone linked-list objective-c

typedef struct {
    NSString *activty;
    NSString *place;
    float latitude;
    float longitude;
} event;

typedef struct {
    event *thing;
    Node *next;
} Node;
Run Code Online (Sandbox Code Playgroud)

这是我在.h文件中创建的代码,用于创建两个用于保存数据的结构(一个用于事件名称/位置/位置,一个用于链接列表的节点.我可以在节点结构中使用事件结构,但我需要在自身内部使用节点结构.在C++中这可行,但是如何在objective-c中实现呢?谢谢!

bbu*_*bum 21

为什么要打扰一个结构?只需使用一个类:

@interface MyEvent:NSObject
@property(copy) NSString *activity;
@property float latitude;
... etc ...
// and that linked list gunk
@property(retain) MyEvent *nextEvent;
@end

@implementation MyEvent
@synthesize activity, latitude, nextEvent;

- (void) dealloc
{
    [activity release], activity = nil;
    [nextEvent release], nextEvent = nil;
    [super dealloc];
}
@end
Run Code Online (Sandbox Code Playgroud)

结构没有明显的开销(如果方法调用真的可以测量,你甚至可以直接暴露ivars).更好的是,当你想要存档结构,添加业务逻辑或做任何其他有趣的事情时,你可以简单地添加方法.