我的代碼存在問題,但無法理解問題所在。從網站解析Xcode XML文件
我解析下面的XML文件
<item>
<title>Title</title>
<link>http://news.israelinfo.ru/economy/45276</link>
<category>economy</category>
<pubDate>Tue, 16 Apr 2013 00:00:00 +0300</pubDate>
<description><![CDATA[
<img src="http://news.israelinfo.ru/images/45276.jpg"
width="180" height="124" align="left">describe article]]></description>
</item>
我得到在我的新聞陣列計數(它總是20),但是當我試圖把一個描述我的自定義單元格我的應用程序崩潰: (
以下是錯誤:
2013-04-17 23:52:05.258 IsraelNews[20379:c07] -[lastNews isEqualToString:]: unrecognized selector sent to instance 0x715b460 2013-04-17 23:52:05.259 IsraelNews[20379:c07] * Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[lastNews isEqualToString:]: unrecognized selector sent to instance 0x715b460'
cell.titleLabel.text = [news objectAtIndex:5];
如果我把靜態文本@"Test"
,那麼一切都很好。
我做錯了什麼?如果您需要其他信息,請告訴我。
感謝
我的XML解析器是在這裏:
-(id)init {
if (self=[super init]) {
news = [[NSMutableArray alloc]init];
dateFormatter = [[NSDateFormatter alloc]init];
[dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss zzzz"];
}
return self;
}
-(NSArray*)fetchNewsWithError:(NSError*)outError {
BOOL success;
NSURL *xmlUrl = [NSURL URLWithString:@"http://israelinfo.ru/xml/news.xml"];
NSURLRequest *request = [NSURLRequest requestWithURL:xmlUrl cachePolicy:NSURLRequestReloadIgnoringCacheData timeoutInterval:30];
NSURLResponse *response = nil;
NSData *data = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&outError];
if (!data) return nil;
[news removeAllObjects];
NSXMLParser *parser;
parser = [[NSXMLParser alloc]initWithData:data];
[parser setDelegate:self];
success = [parser parse];
if (!success) {
NSLog(@"error!");
return nil;
}
NSArray *output = [news copy];
return output;
}
-(void) parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict
{
if ([elementName isEqual:@"item"]) {
currentFields = [[NSMutableDictionary alloc]init];
} else if ([elementName isEqual:@"title"]) {
[currentFields setObject:@"title" forKey:@"title"];
}
}
-(void) parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName {
if ([elementName isEqual:@"item"]) {
lastNews *currentTitle = [[lastNews alloc]init];
[currentTitle setTitle:[currentFields objectForKey:@"title"]];
[currentTitle setLink:[currentFields objectForKey:@"link"]];
[currentTitle setCategory:[currentFields objectForKey:@"category"]];
[currentTitle setDescription:[currentFields objectForKey:@"description"]];
NSString *beginString = [currentFields objectForKey:@"pubDate"];
NSDate *beginDate = [dateFormatter dateFromString:beginString];
[currentTitle setPubDate:beginDate];
[news addObject:currentTitle];
currentTitle = nil;
currentFields = nil;
} else if (currentFields && currentString) {
NSString *trimmed;
trimmed = [currentString stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];
[currentFields setObject:trimmed forKey:elementName];
}
currentString = nil;
}
-(void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string {
if (!currentString) {
currentString = [[NSMutableString alloc]init];
}
[currentString appendString:string];
}