显示从内存中检索到的图像,作为按钮背景

时间:2009-12-16 07:09:15

标签: iphone-sdk-3.0

我的视图中有一个按钮。我想将图像显示为背景。该图像先前由同一应用程序存储在内存中。

`NSArray * paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES);

NSString * uniquePath = [[paths objectAtIndex:0] stringByAppendingPathComponent:“Image.jpg”]; UIImage * image = [UIImage imageWithContentsOfFile:uniquePath];

[btnImage setBackgroundImage:image forState:UIControlStateNormal];`

每次执行代码时,应用程序在包含上述代码的方法结束后崩溃。我尝试调试,发现每一步都完美执行,但应用程序最终崩溃了。我想这个问题是将图像设置为按钮背景。任何人都可以帮我解决这个问题吗?

提前致谢

P.S我在viewDidLoad方法中编写上述代码。

1 个答案:

答案 0 :(得分:0)

如果您使用的是Interface Builder,只需从其中一个属性中设置Image即可;这是假设图像已添加到您的包中。

否则,如果图像是在运行时加载的和/或你在代码中执行所有操作,那么我 我猜你是..我认为问题在于“NSString * uniquePath ...”这一行。你在调试器中运行代码了吗?变量uniquePath是否为nil?

更新:再次浏览此问题,我看到了问题。

您没有保留图像实例变量的副本 - 在从-viewDidLoad返回之前执行此操作。记得在-viewDidUnload

中发布它