typedef struct {
NSString *activty;
NSString *place;
float latitude;
float longitude;
} event;
typedef struct {
event *thing;
Node *next;
} Node;
这是我的 .h 文件中的代码,用于创建两个结构来保存数据(一个用于事件名称/地点/位置,一个用于链表的节点。我可以在node 结构,但我需要在自身内部使用 node 结构。在 C++ 中这可行,但我如何在 objective-c 中实现它?谢谢!
最佳答案
为什么要为结构体烦恼?只需使用一个类:
@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
与结构相比,没有显着的开销(如果方法调用确实可测量,您甚至可以直接公开 ivars)。更好的是,当您想要归档结构、添加业务逻辑或做任何其他有趣的事情时,您只需添加方法即可。
关于iphone - 在 Objective C 中创建链表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4262223/