gpt4 book ai didi

objective-c - 初始化 NSString 时的 EXC_BAD_ACCESS

转载 作者:行者123 更新时间:2023-12-03 17:32:19 26 4
gpt4 key购买 nike

我想用长度为 1 的字符初始化 NSString,但出现错误。这是我的代码:

for(int i=0;i<[word length];i++)
{

letterMap = [self stringToAscii:[word substringWithRange:NSMakeRange(i, 1) ]];
NSInteger codec = (letterMap + shifter) % 26;
unichar ch = [self asciiToString:codec];

NSString * codedLetter = [NSString stringWithCharacters:ch length:[ch length]];

}

最佳答案

unichar 不是 ObjC 对象,它是单个 unicode 字符的原始 C 类型(或 typedef)。您需要像这样调用 NSString 方法(它可以在类似 C 的数组中获取多个字符):

NSString * codedLetter = [NSString stringWithCharacters:&ch length:1];
<小时/>

(您的代码行有两个问题:首先,您将 unichar 的值作为第一个参数传递,而不是指向它的指针,第二个是您'正在尝试对不是 ObjC 对象甚至不是指针的对象调用 -length。当它尝试将消息发送到某个随机内存地址时,它会因为后者而崩溃。)

关于objective-c - 初始化 NSString 时的 EXC_BAD_ACCESS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7879350/

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