NSString *string = @"HELLO";
出于某种原因,XCode不会自动完成删除字符或附加等方法...如果是这样的话,我怎么能从字符串中删除某些字符呢?说我想删除所有的L's。
答案 0 :(得分:5)
NSString
没有回应这些方法。 NSMutableString
确实如此,但您已声明了一个不可变的字符串变量,并为其分配了一个字符串文字。由于Objective-C @"string literal"
总是不可变的(NSString
但不是NSMutableString
的实例),所以这些消息无法发送到您正在使用的对象。
如果你想要一个可变的字符串,请尝试:
NSMutableString *mutableString = [[@"HELLO" mutableCopy] autorelease];
答案 1 :(得分:1)
这是一个不可变的字符串文字。
这是一篇很好的帖子,详细解释了它:
What's the difference between a string constant and a string literal?
关于你如何更改它并删除Ls的问题:
NSString *hello = @"HELLO";
NSString *subString = [hello stringByReplacingOccurrencesOfString:@"L" withString:@""];
NSLog(@"subString: %@", subString);
输出“HEO”
或者你可以通过创建像Jonathan提到的可变字符串的副本来创建NSMutableString。在这两个示例中,您都将其复制到非文字字符串中。