コードに問題がありますが、どこに問題があるのかわかりません。
次の 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:]: 認識されないセレクターがインスタンス 0x715b460 に送信されました 2013-04-17 23:52:05.259 IsraelNews[20379: c07 ]キャッチされない例外 'NSInvalidArgumentException'、理由: '-[lastNews isEqualToString:]: 認識されないセレクターがインスタンス 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];
}