NS结构等价?

时间:2012-05-07 01:27:40

标签: objective-c

我想在不同类的几个方法中传输特定容器的数组/ NSArray。在C ++中,我使用类似于结构的Vector。

容器可以用这样的结构表示:

struct test
{
    NSString * a;
    NSString * b;
    NSNumber * c;
}

容器基本上需要保存一些字符串和数字。

是否有在Objective C中使用结构的替代方法?我可以使用其他“容器”来发送数据吗?

3 个答案:

答案 0 :(得分:3)

我建议创建一个简单的对象,就像这样(在我的浏览器中编译):

@interface Container : NSObject {
    NSString* a;
    NSString* b;
    NSString* c;
}

@property (retain) NSString* a;
@property (retain) NSString* b;
@property (retain) NSString* c;

@end


@implementation Container

@synthesize a, b, c;

- (void) dealloc {
    [a release];
    [b release];
    [c release];
    [super release];
}
@end

答案 1 :(得分:2)

我认为这正是对象的目的(@interface),事实上,Objective-c类只是结尾的结构,Apple开发者文档鼓励你创建类而不是使用结构。

答案 2 :(得分:0)

NS(Mutable)Dictionary可以作为此类事物的通用容器,但通常最好创建一个类,而不是使用总是具有相同键的字典。