2013-04-17 1 views
0

내 코드에 문제가 있지만 문제가있는 곳을 이해할 수 없습니다.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]; 

,222,, 그러면 모든 것이 OK입니다.

내가 뭘 잘못하고 있니? 다른 정보가 필요하면 알려주십시오.

감사

내 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]; 

} 

답변

0

나는 내 솔루션 내가 찾은 생각

lastNews *item = [news objectAtIndex:indexPath.row]; 
    cell.titleLabel.text = item.title; 
0

이 객체 lastNews 예외 'NSInvalidArgumentException "를 던지는 이유는, 무기 호입니다.