Objective c 我得到的错误对象不能为nill。当我使用循环解析它时,它崩溃并发送出去,我的代码是 NSMutableArray*animateImage=[[NSMutableArray alloc]init]; 对于(int i=1;i

Objective c 我得到的错误对象不能为nill。当我使用循环解析它时,它崩溃并发送出去,我的代码是 NSMutableArray*animateImage=[[NSMutableArray alloc]init]; 对于(int i=1;i,objective-c,Objective C,根据您粘贴和解释的内容,我只能猜测,但很可能您正在加载一个名为:的图像,该图像不存在-这导致: NSMutableArray *animateImage =[[NSMutableArray alloc]init]; for ( int i = 1 ; i <= listImages.count ; i++) { [animateImage addObject:[UIImage imageNamed:[listImages objectAtIndex:i]]]; } UIImage

根据您粘贴和解释的内容,我只能猜测,但很可能您正在加载一个名为:的图像,该图像不存在-这导致:

NSMutableArray *animateImage =[[NSMutableArray alloc]init];
for ( int i = 1 ; i <= listImages.count ; i++)
{
    [animateImage addObject:[UIImage imageNamed:[listImages objectAtIndex:i]]];
}

UIImageView *animation= [[UIImageView alloc]initWithFrame:CGRectMake(10,110, 315,180)];

animation.animationImages=animateImage;

animation.animationDuration = 3.00;

[self.view addSubview:animation];
[animation startAnimating];
您可以检查图像是否为零,并将其打印出来,以确定是哪个图像导致了崩溃

addObject:nil
for(int i=1;i而不是此代码:

for ( int i = 0 ; i < listImages.count ; i++)
{

}
NSMutableArray*animateImage=[[NSMutableArray alloc]init];

对于(int i=1;i,在将图像添加到数组之前,应验证图像是否为零。请尝试以下操作:

NSMutableArray *animateImage = [[NSMutableArray alloc] init];
for (int i = 0; i < listImages.count; i++) {
    [animateImage addObject:[UIImage imageNamed:[listImages objectAtIndex:i]]];

}
NSMutableArray*animateImage=[[NSMutableArray alloc]init];
对于(int i=0;i
For start For For应该类似于(int i=0;iUIImage*myImage=[UIImage imageNamed…];NSLog(@“%@”,myImage);[animateImage addObject:myImage];
@DobroćudniTapir甚至更好,它应该是
for(listImages中的NSString*imageName){
快速枚举FTW.+1用于此有效答案。抱歉,我在回答之前没有看到。是的,它比迭代循环更早崩溃,带有“nil”异常:),所以它一定是不存在的图像,但之后它将在循环中崩溃:)这正是如果尝试添加UIImage且image为nil时发生的情况。您有一个错误,即“object cannot be nil”,但如果执行if(image!=nil),则不会发生。if条件将防止发生此崩溃。
NSMutableArray *animateImage =[[NSMutableArray alloc]init];
for ( int i = 1 ; i <= listImages.count ; i++)
{
    [animateImage addObject:[UIImage imageNamed:[listImages objectAtIndex:i]]];
}
NSMutableArray *animateImage = [[NSMutableArray alloc] init];
for (int i = 0; i < listImages.count; i++) {
    [animateImage addObject:[UIImage imageNamed:[listImages objectAtIndex:i]]];

}
NSMutableArray *animateImage = [[NSMutableArray alloc] init];
for (int i = 0; i < listImages.count; i++) {
    UIImage *img = [UIImage imageNamed:[listImages objectAtIndex:i]];
    if (img != nil)
        [animateImage addObject:img];
}