gpt4 book ai didi

objective-c - 将对象添加到 NSMutableArray 属性

转载 作者:太空狗 更新时间:2023-10-30 03:40:20 26 4
gpt4 key购买 nike

这是我的数据结构:

group [1...n] {
id,
name,
elements : [1...n]
}

我为具有所有属性的元素定义了一个类,为组定义了一个类:

@interface Group : NSObject {    
NSInteger groupID;
NSString *groupName;
NSMutableArray *elements;
}

@property (assign, readwrite) NSInteger groupID;
@property (assign, readwrite) NSString *groupName;
@property (assign, readwrite) NSMutableArray *elements;

和单个元素:

@interface Element : NSObject {
NSInteger elementID;
NSString *elementName;
}
@property (assign, readwrite) NSInteger elementID;
@property (assign, readwrite) NSString *elementName;

这两个类都有属性和综合。当应用程序启动时,我用这个在数据结构上插入数据:

arrGroup = [NSMutableArray array];
[arrGroup retain];
Element *element1 = [[Element alloc] init];
element1.elemenID = 1;
element1.elemenName = @"Andrea";

Element *element = [[Element alloc] init];
element2.elementID = 2;
element2.elementName = @"Andrea2";

Group *group = [[Group alloc] init];
group.groupID = 1;
group.groupName = @"Grup 1";
[group.elements addObject:element1];
[group.elements addObject:element2];

[contact1 release];
[contact2 release];

[arrGroup addObject:group];

问题在于 [group.elements addObjct:element1]。元素 NSMutableArray 上没有任何内容。

你能帮我找出错误吗?有没有更好的方法来检索结构数据(元素组)?

感谢帮助!安德烈亚

最佳答案

@synthesize 只为您的属性生成 getter 和 setter,如果需要,您必须自己负责初始化。

要初始化可变数组,例如这在你的初始值设定项中:

- (id)init { // or however it is named
if ((self = [super init])) {
elements = [[NSMutableArray alloc] init];
// ... more?
}
return self;
}

- (void)dealloc {
[elements release]; // don't forget to clean up
// ... more?
[super dealloc];
}

关于objective-c - 将对象添加到 NSMutableArray 属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3231351/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com