不能在的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语句,所以我知道它发现了冒号。但它在最后一行没有错误而崩溃。我究竟做错了什么?

+0

我怀疑'dateString`不保留,并在创建`temp`它重踏上`dateString`。 (你应该显示创建`dateString`的逻辑。) – 2011-12-16 20:10:13

+1

`substringWithRange:`不会改变源(`dataString`)对象,所以它不会“踩跺”。我的猜测是`dataString`实际上并不可变(`NSMutableString`)。 – gschandler 2011-12-16 20:18:11

试试这个:

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:@""];