2011-01-13 4 views
2

私は解析中のxmlファイルを持っています。NSXMLParser問題

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

私が働いてすべての接続を持っていると私は解析が働いていたが、私は問題を抱えていますし、私が間違っているのかわからないと思いました。

私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]; 
    } 
} 

その後、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); 
     } 
    } 
} 

imageItems.imageURLがnullであるので、私はそこNSLogsを持っています。これは、このようなクラスファイルです。あなたは私のコードで言うことができるように

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 

私はObjective-Cのに新しいです。

currentValueには値Imがあります。 imageItemsがnullの理由私は何が欠けていますか?

答えて

0

コードのどこにでも "imageItems"の割り当てが表示されません。おそらく、それをある時点でImageItemsのインスタンスに割り当てる必要があります。おそらくself.imageItems = [[[ImageItems alloc] init] autorelease]またはimageItems = [[ImageItems alloc] init];

+0

私はそれを行い、EXC_BAD_ACCESSを取得します。 ImageItemを@classとして呼び出すことと何か関係がありますか? – user574947

+0

そのコードを投稿してください。 EXC_BAD_ACCESSはどこですか? NSZombies - http://www.markj.net/iphone-memory-debug-nszombie/を使用して、問題の原因を調べてください。 –

+0

多分私はちょうどこれをすべて間違っている。 xmlファイルを解析するときに必要なデータをキャプチャする方法の例がありますか?データを格納するクラスを作成しますか?誰かがすばらしいと思われるいくつかの例がある場合。 – user574947

関連する問題