NSMutableString中nil和@“”之间的区别iOS
我想知道NSMutableString
中的nil
和@""
之间的区别。NSMutableString中nil和@“”之间的区别iOS
我需要NSMutableString
每秒清洁字符串值。
所以
myMutableString = nil;
或
myMutableString = @"";
哪一个是更好地清洁,为什么?
UPDATE
在一个可变的字符串的情况下,你必须先分配/初始化这样的:
NSMutableString *myMutableString = [[NSMutableString alloc] init];
也许你已经这样做了,但你必须以如下方式重置字符串:
[myMutableString setString: @""];
因此,不是写ng myMutableString = @""
,使用上面的代码。
如果分配给myMutableString
它nil
是不是一个有效的指针/对象,不能将消息或行动做出回应。如果你真的将它设置为@""
,它是一个完全有效的对象,它可以将邮件,方法和动作做出反应,它只是包含0
myMutableString = nil;
[myMutableString appendString: @"It now contains a valid string!"];
的长度这不可能发生,因为该字符串是一个字符串nil
myMutableString = @"";
[myMutableString appendString: @"It now contains a valid string!"];
可能发生这种情况,myMutableString
是一个有效的对象,并且可以响应消息。猜猜看,它现在有一个字符串!
所以,一个字符串对象仍然可以被初始化,并具有有没有任何字符的实际字符串值。就像一个数组可以是有效的,并且里面有0个对象。否则,你会如何加入它?
然而,在一个NSMutableString
的情况下,你可能有实际的alloc-INIT它....有人请澄清。
显然,分配给@""
是更好的,它实际上取决于您的方案虽然。我不知道你为什么要分配给nil
,除非你将变量重新分配给一个新的字符串对象。他们的
[@“” appendString:@“!现在,它包含一个有效的字符串”]'会抛出无法识别的选择异常 –
感谢兄弟。它会工作得很好:) –
@ xlc0212 **你在说什么**!?如果你认为我的意思是这样,让我重新说说我的问题。 – MCKapur
无
使用
[myMutableString setString: @""];
重置您的字符串。
你的对象保持不变。您调用一个清除其内容的方法。
这气味像功课* *嗅' – MCKapur