你有两个选择:第一个是在 NSString 中添加 stringWithUnichar 方法的类别:
@interface NSString (MNNSStringWithUnichar)
+ (NSString *) stringWithUnichar: (unichar) value;
@end
@implementation NSString (MNNSStringWithUnichar)
+ (NSString *) stringWithUnichar:(unichar) value {
NSString *str = [NSString stringWithFormat: @"%C", value];
return str;
}
@end
然后用
调用它
NSString *otherString = @"TestString";
NSString *str = [NSString stringWithUnichar:[otherString characterAtIndex:1]];
或者你可以直接这样:
NSString *str = [NSString stringWithFormat:@"%C",[otherString characterAtIndex:1]];
如果要重复使用,或者只需要一次,请选择类别,使用 stringWithFormat 示例!
不确定 NSString 的内部结构,但我猜它可能是包装了一个
unichar *
或一个 unichars 数组(如 C char *)
unichar 只是一个 16 位的值,用于存储字符。与只有 8 位的 unsigned char 不同,它可以容纳超过 0-255,因此它也可以容纳 16 位的 unicode 字符。 NSString 是一个(集群)类[es],其中包含一个 unichars 数组
编辑
这里有几篇关于人们认为 NSString 是什么的文章:
http://cocoawithlove.com/2008/08/string-philosophies-char-arrays.html
http://www.reddit.com/r/programming/comments/6v1yw/string_philosophies_char_arrays_stdstring_and/
希望对您有所帮助!