gpt4 book ai didi

ios - 如何在 objective-c 中访问touchEnded中的数组元素

转载 作者:行者123 更新时间:2023-11-29 04:07:14 25 4
gpt4 key购买 nike

我对 TouchesEnded 方法有一个非常奇怪的行为

我正在使用此语法来访问数组元素

int cal=((b * (b-a-1))+4);
printf("cal is %d",cal);
c=[file_contents objectAtIndex:cal];
printf("message2------%d",c);

它在程序中的任何地方都工作正常,但是当我在中调用上面的代码时touchesEnded 函数导致应用程序崩溃>>

实际上,这是我的函数,我在 viewdidload 中调用两次,并在 touchesEnded 中调用一次

int values_retrieval(int a,int b)
{
//NSLog(@"for loop variable i=%i--> the retrieve coordinates are::%@", a,[file_contents objectAtIndex:(b * (b-a-1))+4]);
printf("message111111111");
int cal=((b * (b-a-1))+4);
printf("cal is %d",cal);
NSString *c=[file_contents objectAtIndex:cal];
int val=[c intValue];
printf("message222222222------%d",val);
return val;
}

当在 viewdidload 中调用它时,一切进展顺利,当在 touchesEnded 方法中调用它时,应用程序崩溃了

我不知道出了什么问题

这是我的 TouchedEnded 方法

- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event
{
CGPoint touchedEnd;

int index=5;
int i=3;
printf("value of i is %d",i);
NSString *test=values_retrieval(i, index);
printf("val issssssssssssssssssss %d",test);

touchedEnd = [[touches anyObject] locationInView:touch.view];
}

任何想法或帮助表示赞赏

最佳答案

c 被视为 int,并且您在 printf() 中为其分配一个对象。

很可能 cal 超出了数组的范围,或者您的数组超出了范围并且不再存在,因为您正在使用 ARC,或者您以其他方式释放了它。

试试这个:

int cal=((b * (b-a-1))+4);
printf("cal is %d",cal);
if(cal > file_contents.count-1)
{
printf("Cal is too big");
}
else
{
c=[file_contents objectAtIndex:cal];
}
NSLog(@"message2------%@", c);

关于ios - 如何在 objective-c 中访问touchEnded中的数组元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14996250/

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