gpt4 book ai didi

ios - 字符串的 NSArray

转载 作者:行者123 更新时间:2023-11-28 19:05:25 24 4
gpt4 key购买 nike

我正在尝试创建一个 NSMutableArray 字符。

lowerCaseLetters = [NSMutableArray new];
for (char crt = 'a'; crt <= 'z'; crt ++) {
NSString *chrStr = [NSString stringWithCString:&crt encoding:NSUTF8StringEncoding];
[lowerCaseLetters addObject:chrStr];
}
NSLog(@"%@",lowerCaseLetters);

结果:

  "a@Ip",
"b@Ip",
"c@Ip",
"d@Ip",
"e@Ip",
"f@Ip",
"g@Ip",
"h@Ip",
"i@Ip",
"j@Ip",
"k@Ip",
"l@Ip",
"m@Ip",
"n@Ip",
"o@Ip",
"p@Ip",
"q@Ip",
"r@Ip",
"s@Ip",
"t@Ip",
"u@Ip",
"v@Ip",
"w@Ip",
"x@Ip",
"y@Ip",
"z@Ip"
)

为什么我会得到这个?有一个更好的方法吗?PS:有时这会因“insertObject:atIndex:”而崩溃无法插入 nil 对象....为什么?

最佳答案

这是未定义的行为:

NSString *chrStr = [NSString stringWithCString:&crt encoding:NSUTF8StringEncoding];

问题是 &crt 不是 C 字符串,因为 C 字符串必须以 null 结尾。您可以这样修复它:

char buf[2];
buf[0] = crt;
buf[1] = '\0';
NSString *chrStr = [NSString stringWithCString:buf encoding:NSUTF8StringEncoding];

您还可以使用 stringWithFormat: 作为更简单的方法,如下所示:

NSString *chrStr = [NSString stringWithFormat:@"%c", crt];

关于ios - 字符串的 NSArray,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20869492/

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