gpt4 book ai didi

Objective-c EXC_BAD_ACCESS(代码=2,地址=0x42)

转载 作者:太空狗 更新时间:2023-10-30 04:01:13 25 4
gpt4 key购买 nike

我是 Objective-C 编程的新手,当我运行我的小程序时收到此错误(我只想生成一个随机字符)。所以这是我到目前为止所做的:

(IBAction)generate{
int a = arc4random() % 26;
NSString * chaine = @"ABCDEFGHIJKLMNOPQRSTUVWXYZ";
char lettre = [chaine characterAtIndex:a];

NSMutableString * mot = [[NSMutableString alloc] initWithCharacters:lettre length:1];
hasard.text = mot;
}

我试图简单地将我的变量“lettre”放入 hasard.text 但它不会处理错误“Incompatible integer to pointer conversion assigning to 'NSString *' from '”字符'。所以我创建了一个 NSMutableString 来包含我的角色。

当我在第五行手动放置字符“e”而不是变量“字母”时,效果很好。因为我可以在调试器中看到“字母”包含一个随机字母,为什么我会在标题中得到错误?

(EXC_BAD_ACCESS(代码=2,地址=0x42))

最佳答案

该函数需要一个指向字符的指针,而您给它的是一个文字字符。您需要创建一个指向它的指针。此外,characterAtIndex 不会像您想象的那样返回字符。它返回一个 unicode 字符,它实际上是一个 unsigned short 而不是 unsigned char。但是,如果您将代码更改为此,它将起作用:

const unichar foo = [@"Test" characterAtIndex:0];
NSString *test = [NSString stringWithCharacters:&foo length:1]; //Note the &

编辑 但最简单的方法就是这样:

char randChar = arc4random_uniform(26) + 'A'; //Changed in response to Jason Coco's comment
NSString *mot = [NSString stringWithFormat:@"%c", randChar];

关于Objective-c EXC_BAD_ACCESS(代码=2,地址=0x42),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11007868/

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