2014-02-16 16 views
0

我有一個應用程序,它解析了我添加到我的應用程序包中的XML,它用字符串控制了子節點,有時足夠長,所以我無法在輸出中獲取它完整(我只得到字符串的「最後」部分)。這他我如何試圖解決的問題:我只得到字符串解析的第二部分XML

-(void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string{ 


    if (isDescription) [self._currentPosition setValue:string forKey:@"description"]; 


    if (isDescription) { 
     if (self._currentPosition[@"description"]) 
     { 
      NSMutableString *str = self._currentPosition[@"description"]; 

      [str appendString:self.descriptionString]; 

     } 
     else 
     { 
      [self._currentPosition setValue:[NSMutableString stringWithString:self.descriptionString] forKey:@"description"]; 
     } 
    }; 

} 

self.description串是我在.h文件中聲明的字符串,使其可變的,但是,我得到一個錯誤SIGABRT - Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Attempt to mutate immutable object with appendString:'

有另一種解決方法?我在其他應用程序中遇到了同樣的問題,但之前的代碼修復很好,但現在我解析了一個XML,添加到應用程序包中,而在另一種情況下,它只是一個Web源。

所以我的問題是 - 如何使「完整」字符串完全輸出它?

沒有爲你提供更多的信息,可能是有用的 - 我的字符串的控制檯輸出: - 「лощади」

2014-02-16 16:01:51.500 superApp[294:60b] Ло́бное ме́сто — памятник древнерусской архитектуры, находящийся в Москве, на Красной площади. Представляет собой возвышение, окружённое каменной оградой. 
2014-02-16 16:01:51.527 superApp[294:60b] лощади. 

在文本輸出中只得到

任何意見將不勝感激,謝謝!

+1

日誌這兩種self.descriptionString&self._currentPosition [@ 「說明」。你有這個'if(self._currentPosition [@「description」])'條件的值。 – Pawan

回答

1

此行

NSMutableString *str = self._currentPosition[@"description"]; 

應該是

NSMutableString *str = [NSMutableString stringWithString:self._currentPosition[@"description"]]; 
+0

謝謝福爾克! –

1

大概self._currentPosition [@ 「說明」]是的NSString,不的NSMutableString。 你應該改變這種

NSMutableString *str = self._currentPosition[@"description"]; 

這個

NSMutableString *str = [[self._currentPosition[@"description"] mutableCopy]; 
+0

非常感謝你現在一切都很好! –