Ich habe eine XML-Datei, die ich analysiere.NSXMLParser Problem
NSURL *url = [NSURL URLWithString:@"url.xml"];
NSURLRequest *request = [NSURLRequest requestWithURL:url cachePolicy:NSURLRequestReloadIgnoringLocalCacheData timeoutInterval:60];
self.downloadData = [[NSMutableData alloc] initWithLength:0];
self.connection = [[NSURLConnection alloc] initWithRequest:request delegate:self startImmediately:YES];
Ich habe alle Verbindungen arbeiten, und ich dachte, dass ich das Parsen hatte gearbeitet, aber ich habe Probleme und weiß nicht, was ich falsch mache.
mein didStartElement:
-(void) parser:(NSXMLParser *) parser didStartElement:(NSString *) elementName namespaceURI:(NSString *) namespaceURI qualifiedName:(NSString *) qName attributes:(NSDictionary *) attributeDict {
if ([elementName isEqualToString:kimgurl])
{
elementFound = YES;
}
}
foundCharacter:
-(void)parser:(NSXMLParser *) parser foundCharacters:(NSString *)string {
if (elementFound == YES) {
if(!currentValue)
{
currentValue = [[NSMutableString alloc] init];
}
[currentValue appendString: string];
}
}
dann didEndElement:
- (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName {
if (elementFound) {
if ([elementName isEqualToString:kimgurl]) {
NSLog(@"imgurl: %@", currentValue);
imageItems.imageURL = currentValue;
NSLog(@"elname: %@", elementName);
NSLog(@"img: %@", kimgurl);
[currentValue setString:@""];
NSLog(@"imageitem: %@", imageItems.imageURL);
}
}
}
Ich habe die NSLogs dort, weil imageItems.imageURL null ist. Dies ist eine Klassendatei, die so ist.
ImageItems.h
@interface ImageItems : NSObject {
//parsed data
NSString *imageURL;
}
@property (nonatomic, retain) NSString *imageURL;
@end
ImageItems.m
#import "ImageItems.h"
@implementation ImageItems
@synthesize imageURL;
-(void)dealloc
{
[imageURL release];
[super dealloc];
}
@end
Wie Sie meinen Code kann sagen, ich bin neu in Objective-c.
currentValue hat den Wert, den ich suche. Warum ist imageItems null? Was vermisse ich?
Ich mache das und ich bekomme EXC_BAD_ACCESS. Könnte etwas mit dem Aufruf von ImageItems als @klasse zu tun haben? – user574947
Versuchen Sie, diesen Code zu posten? Wo ist die EXC_BAD_ACCESS? Versuchen Sie, NSZombies - http://www.markj.net/iphone-memory-debug-nszombie/ zu verwenden, um die Ursache des Problems zu finden. –
vielleicht mache ich das alles falsch. Haben Sie ein Beispiel dafür, wie Sie die Daten erfassen, die Sie beim Parsen der XML-Datei benötigen? Erstellen Sie eine Klasse zum Speichern der Daten? Wenn jemand einige Beispiele hat, wäre das großartig. – user574947