gpt4 book ai didi

iphone - unichar 和 NSString - 它们的互换性如何?

转载 作者:行者123 更新时间:2023-12-03 18:14:45 24 4
gpt4 key购买 nike

有一个 NSString 方法 -characterAtIndex: 返回一个 unichar。

  • (unichar)characterAtIndex:(NSUInteger)index

我想知道这个显然不是 NSString 的 unichar 是否可以转换为 NSString 或馈送到 NSString 进行比较目的?

并且:NSString 内部是否仅由 unichar 项数组组成?

最佳答案

你有两个选择:第一个是向 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 *

或 unichar 数组(如 C char *)

unichar 只是一个用于存储字符的 16 位值。与只有 8 位的 unsigned char 不同,它可以容纳 0-255 以上的数字,因此它也可以容纳 16 位的 unicode 字符。 NSString 是一个包含 unichar 数组的类(簇)

编辑

以下是一些关于人们对 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/

关于iphone - unichar 和 NSString - 它们的互换性如何?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1354388/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com