2011-10-26 47 views
0

我正在試圖製作一個實例方法,它接受一個NSMutableString並更改單個字符,如下所示。 name已在屬性中正確設置。實例方法中的NSMutableString

在main中有一個NSMutableString對象,問題相同的方法工作正常,但我無法讓它在實例方法中工作。我究竟做錯了什麼?

-(void)changeName:(id)string{ 
    [self.name replaceCharactersInRange:NSMakeRange(0, 1) withString:@"x"]; 
} 
+3

你是否意識到你根本不使用'string'參數?這個參數的目的是什麼?在調用'-changeName:'之後'self.name'是否發生了變化?你爲什麼認爲這種方法不起作用,即它應該做什麼以及結果如何? – 2011-10-26 00:27:03

回答

2

如果它在實例方法中不起作用,可能性是您沒有將NSMutableString的指針傳遞給replaceCharactersInRange。請注意,在傳遞nil指針時,Objective-C方法非常適合無操作。

在您的實例方法中使用NSLog在嘗試修改它之前和之後打印出聲稱的可變字符串。然後找出爲什麼可變字符串指針永遠不會被設置。