2011-07-26 55 views
0

我想擦除我的代碼中的NSString對象(將每個字符替換爲0)。替換NSString中的字符

爲了做到這一點我嘗試這樣做:

NSString *myString; 
for (int i=0; i<[myString length]; i++) 
{ 
myString[i] = 0; 
} 

不過,這並不編譯: 「在分配不兼容的類型的」 在線myString的[I] = 0;

我明白,但因爲它創造了一個新的對象,我不能使用功能stringByReplacingOccurancesOfString,我想在我的第一個目的是替換字符。

任何幫助?

+0

告訴我們你要達到的目標,因爲你所做的有點奇怪,0在大多數字符串編碼中並不是一個真正有效的字符,它被用來終止字符串,儘管NSString如何做這是它的業務。除非你的意思是'0'字符。也許你可能想用char數組來構建你的字符串,然後當你完成創建一個NSString。 –

回答

6

NSString是不可變的,這意味着一旦創建它就不能更改其內容。你有這個目的的NSMutableString

而且,你不能用這種語法訪問中的字符,NSStringNSMutableString

myString[i] = 0; 

NSString S和NSMutableString s爲對象,你通過發送消息給他們使用對象。例如,您有characterAtIndex:方法返回給定索引處的字符,或者NSMutableStringreplaceOccurrencesOfString:withString:options:range:將給定範圍內給定字符串的所有出現次數替換爲另一個給定字符串。

+0

另外:myString [i]返回unichar類型,0是整數類型,這可能解釋了無用的編譯器錯誤 – MechEthan

+0

很好的詳細解釋。 +1 –

+0

@Praveen S謝謝:) – albertamg

1

由定義,NSString是一個不可變的類,所以它裏面的數據是不可改變的。

您正在尋找NSMutableString類,它實現了以下方法:

replaceOccurrencesOfString:withString:options:range: 

,您可以使用對象內替換字符或字符串您發送消息。

+0

感謝您的回答 – TheFrancisOne