0

コードに問題がありますが、どこに問題があるのか​​わかりません。

次の 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];

}
4

2 に答える 2