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 -
答案 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
。 ?