我有一个可以切换图像的应用,但是我遇到了很多麻烦...... 第一个“del”是de AppDelegate,“displayImage”在其.m中定义 “equiz”是一个整数,但是所有图像都被命名为“1”,“2”并且像那样
因此,当我使用此代码时,我会收到泄漏但没有崩溃:
UIImage *img = [UIImage imageNamed:[NSString stringWithFormat:@"%d",equiz]];
UIImageView *imgView = [[UIImageView alloc] initWithImage:img];
imgView.frame = del.displayImage.frame;
del.displayImage = imgView;
[imgView release];
然后我使用此功能但是当我转到设备的“桌面”并返回应用程序时出现崩溃:
UIImage *img = [UIImage imageNamed:[NSString stringWithFormat:@"%d",equiz]];
del.displayImage.image = img;
[img release] //"that line"
然后你说:“你正在释放你不拥有的物体” 我说:“如果我删除”那条线“我会得到同样的泄漏D:
有人可以帮我解决这个问题吗? 非常感谢你提前:D
答案 0 :(得分:0)
您好我有类似的问题,它来自NSString。所以我的解决方案是: 在.h文件中创建
NSString *imageName;
@property(nonatomic, retain)NSString *imageName;
然后在.m文件中执行此操作
@synthesize imageName; ...
imageName = [NSString stringWithFormat:@"%d",equiz];
UIImage *img = [UIImage imageNamed:imageName];
UIImageView *imgView = [[UIImageView alloc] initWithImage:img];
imgView.frame = del.displayImage.frame;
del.displayImage = imgView;
[imgView release];
...
并在dealloc方法中释放imageName ...
- (void)dealloc {
[imageName release];
[super dealloc];
}
通过我这个工作..希望帮助也是你的解决方案。