【发布时间】:2010-11-08 16:12:23
【问题描述】:
对不起,我的英语不好。我来自德国,在解析我的 xml 文件时遇到了一些问题。我使用最新版本的 iOS SDK,包括 Xcode。
解析我的 xml 文件会导致一个众所周知的错误,称为“在非结构或联合的情况下请求成员 'Slices'”
似乎我忘记了什么,初始化我的 Delgegate 类? 如果有人可以帮助我度过难关,那就太好了。 这是我得到的唯一错误... narrf..
这里是一些与这个问题相关的代码:
我的 XMLParser .h 文件
#import <UIKit/UIKit.h>
@class XMLAppDelegate, Slice;
@interface XMLParser : NSObject <NSXMLParserDelegate>{
NSMutableString *currentElementValue;
XMLAppDelegate *appDelegate;
Slice *aSlice;
}
- (XMLParser *) initXMLParser;
@end
这里显示错误的 .m 文件的某些部分:
#import "XMLParser.h"
#import "XMLAppDelegate.h"
#import "Slice.h"
@implementation XMLParser
- (XMLParser *) initXMLParser {
[super init];
appDelegate = (XMLAppDelegate *)[[UIApplication sharedApplication] delegate];
return self;
}
- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName
namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qualifiedName
attributes:(NSDictionary *)attributeDict {
if([elementName isEqualToString:@"Channel"]) {
//Initialize the array.
appDelegate.slices = [[NSMutableArray alloc] init];
}
else if([elementName isEqualToString:@"Slice"]) {
//Initialize the slice.
aSlice = [[Slice alloc] init];
//Extract the attribute here.
aSlice.sliceID = [[attributeDict objectForKey:@"id"] integerValue];
NSLog(@"Reading id value :%i", aSlice.sliceID);
}
NSLog(@"Processing Element: %@", elementName);
}
在我尝试使用委托的 slices 数组后出现错误。
如果有人知道该怎么做,那就太好了, 这件小事让我恶心。 ^^
【问题讨论】:
标签: objective-c xml cocoa parsing