用于ivar的NSString或NSMutableString?

时间:2011-07-13 18:30:09

标签: objective-c

据我所知,如果您打算更改字符串对象的内容,那么您应该使用NSMutableString。这适用于作为实例变量的字符串对象吗?如果我有:

 @property (nonatomic,retain) NSString* map;

我可以随时更改self.map并且仍然可以认为它很好吗?我实际上是这样做的,但我想到这样做也许没有意义,而且我的ivar应该是一个NSMutableString。我只是做了这样的事情:

self.map=@"Georgia";

/// in another method, later:

self.map=@"Montana";

它有效,但技术上map是不可改变的,所以这可能不明智吗?

2 个答案:

答案 0 :(得分:3)

这是常用的方法。在我看来,当你可以替换它时,你不需要使用可变字符串。可变字符串被设计为“内容操纵”。

答案 1 :(得分:0)

在这种情况下的可变性是指字符串的内容,而不是对象的引用。