簡體   English   中英

將對象添加到NSMutableArray屬性

[英]Adding objects to a NSMutableArray property

這是我的數據結構:

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];
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM