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