IOS:UIImage的发送到释放的实例

我有这样的代码:

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];

这样,经过几次议事录我的应用程序崩溃与此消息

[UIImage isKindOfClass:]: message sent to deallocated instance

为什么?? 你可以帮我吗?

--------------解决方案-------------

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

你的代码的问题是,你分配一个UIImage图像变量对象,然后不释放它,你将它设置为另一个自动释放的对象。 [UIImage imageNamed:]返回一个自动释放的UIImage对象。

您分配一个新的形象,那么你指定的指针被返回自动释放的UIImage UIImage imageNamed:造成内存泄漏,然后尝试释放一个自动释放的对象,再次获得释放,导致错误。

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

好像你完全搞错了。 起初,你的alloc-初始化对象,然后分配autorelased对象的指针,使得第一个对象泄漏。 下面是正确的代码:

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

1)你不需要从文件加载图像之前分配一个空的图像。

2)你确定由字符串指定的图像[的NSString stringWithFormat:@“1%D_S%d.png”,currentSet,图像NUMBER]确实存在,并提供给应用程序?

在imageNamed调用将返回null,如果该图像不能被发现。 在调试器通过步,看看图像实际加载。

分类:IOS 时间:2015-03-15 人气:8
本文关键词: Xcode中,IOS,崩溃报告
分享到:

相关文章

Copyright (C) 55228885.com, All Rights Reserved.

55228885 版权所有 京ICP备15002868号

processed in 1.508 (s). 10 q(s)