是否可以直接为NSMutableString设置字符串值?

时间:2012-08-20 21:24:29

标签: objective-c cocoa nsmutablestring

我可以轻松创建常规NSString

NSString *string = @"string value";    // Case 1

是否可以做这样的事情?

NSMutableString *mutableString = @"mutableString value";    // Case 2

3 个答案:

答案 0 :(得分:6)

你可以像其他一些答案中提到的那样初始化字符串,但对于像这样的常量字符串,我更喜欢发送-mutableCopy消息:

NSString* string = @"string value";
NSMutableString* mutableString = [@"mutableString value" mutableCopy];

感觉很容易给我看,但这是风格偏好的问题。

答案 1 :(得分:3)

排序:

NSMutableString *mutableString = [NSMutableString stringWithString:@"mutableString value"];

答案 2 :(得分:0)

案例2有效,但不会创建可变字符串;它只是将NSString放入NSMutableString指针。该对象仍然是一个常量文字字符串,并向其发送appendString:之类的内容将导致运行时错误。

您需要通过NSMutableStringstringWithString:后跟alloc分配新的initWithString:。您也可以创建一个空字符串,然后根据需要使用setString: