不能在的NSMutableString
问题描述:
替换字符串这是我的字符串:不能在的NSMutableString
2011-10-07T08:55:16-05:00
我试图用这个代码删除冒号:
NSRange range = NSMakeRange(dateString.length-3, 1);
NSString *temp = [dateString substringWithRange:range];
if ([temp isEqualToString:@":"])
[dateString replaceCharactersInRange:range withString:@""];
我的代码进入if语句,所以我知道它发现了冒号。但它在最后一行没有错误而崩溃。我究竟做错了什么?
答
试试这个:
NSMutableString *dateString = [NSMutableString stringWithString:@"2011-10-07T08:55:16-05:00"];
NSRange range = NSMakeRange(dateString.length-3, 1);
NSString *temp = [dateString substringWithRange:range];
if ([temp isEqualToString:@":"])
[dateString replaceCharactersInRange:range withString:@""];
我怀疑'dateString`不保留,并在创建`temp`它重踏上`dateString`。 (你应该显示创建`dateString`的逻辑。) – 2011-12-16 20:10:13
`substringWithRange:`不会改变源(`dataString`)对象,所以它不会“踩跺”。我的猜测是`dataString`实际上并不可变(`NSMutableString`)。 – gschandler 2011-12-16 20:18:11