2010-01-12 68 views
0
- (void)parserDidStartDocument:(NSXMLParser *)parser 
{ 
    nestedChannels = [ [ NSMutableArray alloc ] init ]; 
    .... 
} 

- (void)parser:(NSXMLParser *)parser didStartElement.... 
{ 
    Channel *channel = [ [ Channel alloc ] init ]; 
    [ nestedChannels addObject:channel ]; 
    .... 
} 

- (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string.... 
{ 
    Channel *channel = [ nestedChannels lastObject ]; 
    channel.thumbnail = string; 
    .... 
} 

@interface Channel : NSObject { 

NSMutableString *thumbnail; 

} 


@property (nonatomic, retain) NSMutableString *thumbnail; 

错误:*终止应用程序由于未捕获的异常“NSInvalidArgumentException”,原因是:“* - [NSCFString缩略图]:无法识别的选择发送到实例0x381c350”解析XML不起作用,为什么?

这就像是无法识别的类型的对象。我缺少的东西

** nestedChannels是的NSMutableArray *

+0

- (无效)parserDidStartDocument:(的NSXMLParser *)解析器 {\t \t nestedChannels = [[NSMutableArray里的alloc] INIT]; – 2010-01-12 20:44:40

回答

0

好像这是造成这个问题的原因。

channel.thumbnail = string; 

什么类型的缩略图频道及存取器可用? 对我来说,它看起来像它试图将字符串设置为缩略图,但没有设置器接受缩略图上的字符串。是缩略图NSString

+0

我添加了Channel类,对不起 – 2010-01-12 22:18:35

+0

你试图将NSString分配给NSMutableString,通常与一些警告一起工作,但也许KVC有一些问题,在KVC中设置可变和不可变字符串的区别?你是否尝试制作可变副本并将其分配给缩略图? – stefanB 2010-01-12 23:13:04

0

目前还不清楚你问什么;这些不同的方法?你的代码格式有点奇怪。有一点要注意的是,如果第二个片段是确实的方法(虽然没有括号),则需要追加传入的数据,因为它可能不是一个完整的元素:

if (channel.name == nil) channel.name = [NSMutableString string]; 
[channel.name appendString: string];