我開始了一個小的Xcode項目來調查NSMutableString
屬性應該是copy
還是retain
。我聲明我與copy
屬性屬性:試圖使用複製的NSMutableString屬性導致異常
@property (nonatomic,copy) NSMutableString *stringA;
然後初始化它爲self.stringA = [NSMutableString new];
終於嘗試設置字符串[stringA setString:@"A"];
。
但是程序給出,
「終止應用程序由於未捕獲的異常‘NSInvalidArgumentException’,理由是:‘試圖改變一個不可改變的對象,具有了setString:’」
是因爲所產生的字符串是NSString
?這是否意味着我應該使用retain
屬性和NSString
屬性使用copy
來聲明我的NSMutableString
屬性?
你幾乎肯定不希望可變字符串作爲一個屬性在第一個地方;至少,沒有一個暴露爲API。 – bbum 2012-08-16 18:02:05
我的回答太多了:http://stackoverflow.com/questions/4995254/nsmutablestring-as-retain-copy/5004019#5004019 – justin 2012-08-16 18:03:01
對NSStrings使用'copy'毫無意義。 – 2012-08-16 18:03:06