2010-01-12 103 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];