IOS:UIImage已发送到解除分配的实例

IOS:UIImage已发送到解除分配的实例,ios,xcode,crash-reports,Ios,Xcode,Crash Reports,我有以下代码: imageNumber++; UIImage *image = [[UIImage alloc]init]; image = [UIImage imageNamed:[NSString stringWithFormat:@"l%d_s%d.png", currentSet, imageNumber]]; [imageToColor setImage:image]; //<-- here it crash

我有以下代码:

imageNumber++;
UIImage *image = [[UIImage alloc]init];
            image = [UIImage imageNamed:[NSString stringWithFormat:@"l%d_s%d.png", currentSet, imageNumber]];
            [imageToColor setImage:image]; //<-- here it crash 
            [image release];
为什么??你能帮我吗

imageNumber++;
UIImage *image = [UIImage imageNamed:[NSString stringWithFormat:@"l%d_s%d.png", currentSet, imageNumber]];
[imageToColor setImage:image];
代码的问题在于,您在image变量上分配了一个
UIImage
对象,然后在不释放它的情况下,将其设置为另一个自动释放的对象
[UIImage ImageName:::
返回自动删除的
UIImage
对象


代码的问题在于,您在image变量上分配了一个
UIImage
对象,然后在不释放它的情况下,将其设置为另一个自动释放的对象
[UIImage ImageName:::
返回自动删除的
UIImage
对象

您正在分配一个新图像,然后将该指针分配给由
UIImage imageNamed:
返回的自动删除的UIImage,导致内存泄漏,然后尝试释放自动删除的对象,该对象再次被释放,从而导致错误

imageNumber++;
image = [UIImage imageNamed:[NSString stringWithFormat:@"l%d_s%d.png", currentSet, imageNumber]];
[imageToColor setImage:image]; //<-- here it crash 
imageNumber++;
image=[UIImage ImageName:[NSString stringWithFormat:@“l%d_s%d.png”,currentSet,imageNumber];

[imageToColor设置图像:图像]// 您正在分配一个新映像,然后将该指针分配给由
UIImage imageNamed:
返回的自动删除的UIImage,导致内存泄漏,然后尝试释放自动删除的对象,该对象再次被释放,从而导致错误

imageNumber++;
image = [UIImage imageNamed:[NSString stringWithFormat:@"l%d_s%d.png", currentSet, imageNumber]];
[imageToColor setImage:image]; //<-- here it crash 
imageNumber++;
image=[UIImage ImageName:[NSString stringWithFormat:@“l%d_s%d.png”,currentSet,imageNumber];

[imageToColor设置图像:图像]// 看来你全搞错了。首先,将alloc init对象分配给指针,然后将autorelased对象分配给指针,使第一个对象泄漏。以下是正确的代码:

imageNumber++;
UIImage *image [UIImage imageNamed:[NSString stringWithFormat:@"l%d_s%d.png", currentSet, imageNumber]];
[imageToColor setImage:image];

看来你全搞错了。首先,将alloc init对象分配给指针,然后将autorelased对象分配给指针,使第一个对象泄漏。以下是正确的代码:

imageNumber++;
UIImage *image [UIImage imageNamed:[NSString stringWithFormat:@"l%d_s%d.png", currentSet, imageNumber]];
[imageToColor setImage:image];
1) 从文件加载图像之前,无需分配空图像

2) 您确定字符串[NSString stringWithFormat:@“l%d_s%d.png”、currentSet、imageNumber]指定的图像确实存在并且可供应用程序使用吗

如果找不到图像,imageNamed调用将返回null。在调试器中逐步执行,查看是否实际加载了映像。

1)从文件加载映像之前,无需分配空映像

2) 您确定字符串[NSString stringWithFormat:@“l%d_s%d.png”、currentSet、imageNumber]指定的图像确实存在并且可供应用程序使用吗


如果找不到图像,imageNamed调用将返回null。逐步进入调试器,查看映像是否已实际加载。

好的,但我的应用程序在几分钟后而不是立即崩溃的原因是什么,你能解释一下吗?自动释放的对象不会立即释放Yok,但我的应用程序在几分钟后而不是立即崩溃的原因是什么,你能解释一下吗?自动释放的对象不会立即释放