当我解析XML

问题描述:

我的代码无法插入一个NSMutableArray的对象:当我解析XML

... 
    else if ([elementName isEqualToString:@"photo"]) { 
     NSLog(@"Trying to add photo"); 
     NSLog(@"Prev: %d",[currentItem.photoList count]); 
     NSLog(@"Author: %@",[currentPhotoItem author ]); 
     [currentItem.photoList addObject:currentPhotoItem]; 
     NSLog(@"Next: %d",[currentItem.photoList count]); 
    } 

日志:

2011-10-11 09:49:13.553 ECG [4862:B303 ]尝试添加照片

2011-10-11 09:49:13.553 ECG [4862:B303]上一个:0

2011-10-11 09:49:13.554 ECG [4862:B303]作者:费尔南多布兰科

2011-10-11 09:49:13.573 ECG [4862:B303]接下来:0

ADDOBJECT不对象添加到NSMutableArray中的方法,...

“photoList” 被定义

一个的NSMutableString在类:

@interface GalleryRSSItem : NSObject { 

     NSString *title; 
     NSString *imgtn; 
     NSString *category; 
     NSString *url; 
     NSString *date; 

     NSMutableArray *photoList; 
} 
@property (nonatomic, retain) NSString *title; 
@property (nonatomic, retain) NSString *imgtn; 
@property (nonatomic, retain) NSString *category; 
@property (nonatomic, retain) NSString *url; 
@property (nonatomic, retain) NSString *date; 
@property (nonatomic, retain) NSMutableArray *photoList; 
@end 

如果你已经正确初始化对象在解析器didStartElemnt方法

- (void) parser:(NSXMLParser *) Parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict 
{ 
    if ([elementName isEqualToString:@"gallery"]) { 
     currentItem = [[GalleryRSSItem alloc] init]; 
     currentNodeContent = [[NSMutableArray alloc] init]; 
    } 
    if ([elementName isEqualToString:@"photo"]) { 
     currentPhotoItem = [[PhotoRSSItem alloc] init]; 
     currentNodeContent = [[NSMutableArray alloc] init]; 
    } 
} 
+1

你确定currentItem.photoList被初始化了吗? – jbat100

+0

非常感谢,这是错误!现在有用! currentItem.photoList = [[NSMutableArray alloc] init]; – Jimmy

检查初始化数组。

我想要么currentItemcurrentItem.photoList是NIL。 Obj-C允许在nil对象上调用方法,在这种情况下,count调用将返回0。