gpt4 book ai didi

iphone - EXC_BAD_ACCESS 无法想象的错误

转载 作者:搜寻专家 更新时间:2023-10-30 19:54:34 27 4
gpt4 key购买 nike

好的,这是我程序中的一个方法,它不断给出 EXC_BAD_ACCESS 错误并崩溃。我指出了下面的行。 questionsShown 是一个读写属性,指向一个 NSMutableArray,我在程序的较早一点初始化了容量为 99 的数组。当我调试时,就分配的属性而言,一切都显得正常。我认为内存管理一定有问题,但我很难找到问题所在。在此先感谢您的帮助。

@synthesize questionList;
@synthesize questionLabel;
@synthesize questionsShown;

-(IBAction)next{
int numElements = [questionList count];
int r;
if (myCount == numElements){
[questionLabel setText:@"You have seen all the questions, click next again to continue anyways."];
[questionsShown release];
questionsShown = [[NSMutableArray alloc] initWithCapacity:99];
myCount = 0;
}
else {
do {
r = rand() % numElements;
} while ([questionsShown indexOfObjectIdenticalTo:r] != NSNotFound);
NSString *myString = [questionList objectAtIndex:(NSUInteger)r];
[questionLabel setText:myString];
myCount++;
[questionsShown addObject:r]; //results in crash with message EXC_BAD_ACCESS
myCount++;
}
}

最佳答案

EXC_BAD_ACCESS 来自取消引用 r,它只是一个整数。你的编译器应该在该行给你一个警告(从没有转换的整数创建指针)。

如果 questionsShown 应该是为您设置的某种索引(它看起来是),您可能想要使用该类,或者您必须将整数装入 NSNumber 对象中。所以:

[questionsShown addObject:[NSNumber numberWithInt:r]];

当你阅读它时:

[questionsShown indexOfObjectIdenticalTo:[NSNumber numberWithInt:r]]

不过,我建议您查看 NSIndexSet documentation .

使用可变索引集,您可以:

[questionsShownIndexSet containsIndex:r]

[questionsShownIndexSet addIndex:r]

关于iphone - EXC_BAD_ACCESS 无法想象的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3163020/

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