无法在UIImageView(iPhone)中以编程方式显示图像

无法在UIImageView(iPhone)中以编程方式显示图像,iphone,uiimageview,Iphone,Uiimageview,我正在开发一款iPhone应用程序,但遇到了一个障碍 NSString *fileLocation = [[NSBundle mainBundle] pathForResource:@"happy.1" ofType:@"jpg"]; UIImage *new_image = [UIImage imageWithContentsOfFile:fileLocation]; [self setImage:new_image]; if (new_image == nil) { NSLog(

我正在开发一款iPhone应用程序,但遇到了一个障碍

NSString *fileLocation = [[NSBundle mainBundle] pathForResource:@"happy.1" ofType:@"jpg"];
UIImage *new_image = [UIImage imageWithContentsOfFile:fileLocation]; 
[self setImage:new_image];

if (new_image == nil) {
    NSLog(@"can't load image happy.1.jpg");
}
bgImageView.image = image;
这是我用来显示图像的代码,但它没有出现!新的图片不是零,我知道如果它不能加载图片的话会是零。bgImageView是一个IB插座,连接在IB中

请告诉我我做错了什么。谢谢


编辑:同样,这在模拟器上不起作用,设备也不是
image
nil


[UIImage ImageName:@“happy.1.jpg”]
有什么问题?

通常这是因为图像没有被复制到构建的可执行文件中。因此,打开应用程序包,看看它们是否存在

如果是,那么可以检查fileLocation是否返回空/nil

我想知道“.1”是否引起了问题。尝试重命名您的图像文件_1、_2,看看是否可以修复它。

您可以使用
NSString *fileLocation = [[NSBundle mainBundle] pathForResource:@"happy.1" ofType:@"jpg"];
UIImage *new_image = [UIImage imageWithContentsOfFile:fileLocation]; 
bgImageView.image = new_image;
imageview.image=[UIImage imagename:@“imagename”]


通过使用相同的方法,我们可以在每个imageview上显示大量图像。这不会导致内存问题。只需注意为分配的imageview进行适当的释放。

以后我将不得不加载许多图像,因此我认为使用imageWithContentsofFile可以从长远来看节省内存。图像也不是零。我打印了文件位置,它是“/var/mobile/Applications/455212CA-C53C-449F-9125-5c4B06270f/Mootchi.app/happy_1.jpg”,所以看起来还可以。我也重命名为happy_1,但仍然没有。您需要使用调试器并逐步完成此代码。检查bgImageView是否为零,查看其尺寸,确保其实际可见。视图是否实际位于可见窗口中?当你做了所有其他事情后,追踪这些事情的一般规则是:简化它。一个窗口,一个视图,一个图像。让它工作起来,然后让它变得更复杂。