2010-06-29 57 views
8

我從Web服務獲取JSON響應,但它沒有被我使用的JSON解析器所需的[]標記包裝,所以我需要在將這些字符傳遞給JSON解析器之前將這些字符追加並附加到我的NSString中。prepend NSString?

這是我哈弗至今:

NSString *responseString = [[NSString alloc] initWithData:responseData encoding:NSUTF8StringEncoding]; 
responseString = [responseString stringByAppendingFormat:@"]"]; 

所附完美的作品,現在我只需要預先設置[這一點,似乎無法找到這種方法。

回答

10

試試這個:

responseString = [NSString stringWithFormat:@"[%@]", responseString]

有acheiving同樣的事情的其他方式,我相信其他人將能夠提供更有效的方法,但如果responseString不是非常大,則以上就夠了。

7

使用的NSMutableString你可以做這樣的:

NSMutableString *str = [[NSMutableString alloc] initWithString:@"Overflow"]; 
[str insertString:@"Stack" atIndex:0]; 

之後的的NSMutableString 海峽將舉行:

"StackOverflow" 
3

只是爲了完整性:

responseString = [@"[" stringByAppendingString:responseString]; 

它ometimes令人驚喜的是,你可以給字符串文字信息,直到他們想到它。 ;)

+0

聽起來很有趣。請您詳細說明一下(或者提供一個更深入的理解來源)? – plocks 2015-03-03 13:25:20

+0

你可以發送'-stringByAppendingString:'消息給任何'NSString'。字符串文字'@「[」'是一個'NSString'。所以,你可以在@「[」'上調用'-stringByAppendingString:'。原來的問題是,粗略地說,「我知道如何附加到一個字符串,但我該如何添加到一個字符串?」洞察是,將「foo」附加到「bar」的末尾與將「bar」添加到「foo」的開頭處相同。如果你只是調整你的精神焦點,預先和追加是相同的操作。將左括號前置到字符串與將字符串附加到左括號相同。 – 2015-03-03 13:51:42

+0

現在我明白了。非常感謝你。 – plocks 2015-03-03 13:55:00