Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/94.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone NSXMLParser问题_Iphone_Ios_Ios4_Nsxmlparser - Fatal编程技术网

Iphone NSXMLParser问题

Iphone NSXMLParser问题,iphone,ios,ios4,nsxmlparser,Iphone,Ios,Ios4,Nsxmlparser,我正在解析一个xml文件 NSURL *url = [NSURL URLWithString:@"url.xml"]; NSURLRequest *request = [NSURLRequest requestWithURL:url cachePolicy:NSURLRequestReloadIgnoringLocalCacheData timeoutInterval:60]; self.downloadData = [[NSMutableData alloc] initWithLength:0

我正在解析一个xml文件

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;
    }
}
角色:

-(void)parser:(NSXMLParser *) parser foundCharacters:(NSString *)string {
if (elementFound == YES) {
         if(!currentValue)
         {
             currentValue = [[NSMutableString alloc] init];
         }

        [currentValue appendString: string];
    }
}
然后是迪登德元素:

- (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为空,所以我有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具有我要查找的值。为什么imageItems为空?我遗漏了什么?

我在代码的任何地方都看不到“imageItems”的赋值。您可能需要在某个时候将其分配给ImageItems的实例。可能使用
self.imageItems=[[imageItems alloc]init]autorelease]
imageItems=[[imageItems alloc]init]

我在代码的任何地方都看不到“imageItems”的赋值。您可能需要在某个时候将其分配给ImageItems的实例。可能使用
self.imageItems=[[imageItems alloc]init]autorelease]
imageItems=[[imageItems alloc]init]

我这样做了,我得到了EXC\u BAD\u访问权限。可能与将ImageItems作为@class调用有关?是否尝试发布该代码?交易所在哪里?尝试使用NSZombies-找到问题的根源。也许我只是做错了。您是否有一个示例,说明如何在解析xml文件时捕获所需的数据?您是否创建一个类来存储数据?如果有人有一些很好的例子的话,我会这样做,然后我会得到EXC\u BAD\u访问权限。可能与将ImageItems作为@class调用有关?是否尝试发布该代码?交易所在哪里?尝试使用NSZombies-找到问题的根源。也许我只是做错了。您是否有一个示例,说明如何在解析xml文件时捕获所需的数据?您是否创建一个类来存储数据?如果有人有一些例子,那就太棒了。