2012-12-21 125 views
0

我有2個型號:NSMutableArray不能添加對象?

@interface Program : NSObject 

@property (nonatomic, retain) NSString * name; 

@property (nonatomic, strong) NSMutableArray *guides; 
@end 

@interface Guide : NSObject 
@property (nonatomic, retain) NSString *name; 
@end 

我添加一些導遊項目從一個XML:

Program *program = [Program new]; 
    program.name = @"My list" 
    for(DDXMLElement *guideElement in [programElement nodesForXPath:@"guide" error:&error]) 
    { 
     Guide *guide = [Guide new]; 
     guide.name = [guideElement stringValue];// [p attribute:@"name"]; 
     [program.guides addObject:guide]; 
     NSLog(@"load guide number: %d", [program.guides count]); 
    } 

的出來總是 「負載導數:0」

+0

您是否製作了NSMutableArray中?如:self.guides = [NSMutableArray array] – HKTonyLee

+0

因爲調用任何nil對象的方法都會返回nil值。在這種情況下,[program.guides count]將返回0. – HKTonyLee

回答

2

program.guides是零,因爲你從來沒有創造它。

+0

非常感謝你,它在我添加了'NSMutableArray * guides = [NSMutableArray new]後有效。 '和'program.guides = guides; ' – why

1

在你Programinit方法,添加:

self.guides = [[NSMutableArray alloc] init];

或者,更拖泥帶水,你for循環加載之前:

program.guides = [[NSMutableArray alloc] init];