0

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

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

谢谢

4

2 回答 2

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

于 2012-05-08T07:38:51.210 回答
-1

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

也就是说,该insertString:atIndex方法的文档听起来像是您的原始代码应该可以工作:

新字符从 anIndex 开始,从 anIndex 到末尾的现有字符移动 aString 的长度。

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

于 2012-05-08T07:38:17.667 回答