2012-12-21 129 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];