当我解析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];
}
}
答
检查初始化数组。
答
我想要么currentItem或currentItem.photoList是NIL。 Obj-C允许在nil对象上调用方法,在这种情况下,count调用将返回0。
你确定currentItem.photoList被初始化了吗? – jbat100
非常感谢,这是错误!现在有用! currentItem.photoList = [[NSMutableArray alloc] init]; – Jimmy