将NSMutableString元素设置为Number

时间:2009-10-07 11:17:13

标签: iphone string

Ola Folks,

我希望在运行时通过为元素分配特定数字(0-255)和添加到字符串的appendFormat来填充NSMutableString。

如果这是一个unsigned char数组,我可以直接使用:

分配数字
UnsignedCharRay[SomeIndex] = 5;

由于我认为我理解但不喜欢的原因,

NSMutableStringObject[SomeIndex] = 5;

无效。

据我所知,没有NSString或NSMutableString方法直接设置字符串数组的元素。

有办法做到这一点吗?如果是这样,它是什么?

在我找到答案并且可以使用NSMutableString执行此操作之前,我将使用unsigned char数组并使用unsigned char araay创建NSString。除了在创建NSString时指定NSUTF8StringEncoding,还有其他注意事项我应该注意吗?从unsigned char数组创建NSString的最有效方法是什么?目标是在转换期间保留0到255的值。注意:0只会出现在字符串的末尾...有时候。

TIA

-isdi -

2 个答案:

答案 0 :(得分:1)

您可以使用replaceCharactersInRange:withString:在索引处设置特定字符,如果这是您要做的全部。

例如

[myMutableString replaceCharactersInRange:NSMakeRange(index,1) withString: value];

但是,如果您只想在数组中存储任意char值,那么您最好只做您正在做的事情。

答案 1 :(得分:0)

您可能希望查看NSMutableString的{​​{3}}方法。最接近直接设置char[]元素,只需给它一个长度为1的范围。

此外,您可能只想使用initWithFormat:Arguments:创建一堆字符串,然后在最后将它们连接在一起。

不要忘记NSString是一个复杂的类,它旨在提供各种功能,内存管理,UTF-8支持,I / O等等。它并不打算成为您直接编写的开放缓冲区。如果你真的需要直接操作字节,也许你最好只使用char[]缓冲区来组合你的结果,并在你需要显示结果之前将其转换为NSString。 ?