NSMutableString不在指定位置插入字符串

时间:2012-05-08 07:35:40

标签: objective-c

我有一个NSString对象" testtimeFrame"我正在转换为NSMutableString对象" mutable"并执行insertStringAtIndex方法.. 我的testtimeframe值是05-8-2012,我想插入" 0"在8之前,但它显示为80而不是08 ..

NSMutableString * mutable = [NSMutableString stringWithString:testtimeFrame];
[mutable insertString:@"0" atIndex:3];
NSLog(@"my day is:%@",mutable);

由于

2 个答案:

答案 0 :(得分:2)

是的,这是正确的行为。请记住,索引始终从0开始!

0: 0
1: 5
2: -
3: 8

所以你的代码很好!我刚跑:

NSMutableString * mutable = [NSMutableString stringWithString:@"05-8-2012"];
[mutable insertString:@"0" atIndex:3];
NSLog(@"my day is:%@",mutable);

它很棒!

您可能遇到以下问题:testtimeframe

答案 1 :(得分:-1)

显而易见的解决方案是给它一个2而不是3的索引。

也就是说,insertString:atIndex方法的文档听起来像原始代码应该有效:

  

新字符从anIndex和现有字符开始   最后的anIndex移动了aString的长度。

由于'8'字符位于索引3,听起来你的0应该放在那里,而8将一个位置向右移动,产生所需的'08'