iOS:从plist文件加载图像

我试图从一个plist文件显示各种图像到UIImageView,我写我的代码是这样的:

NSDictionary *picturesDictionary = [NSDictionary dictionaryWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"Photos" ofType:@"plist"]]; imageArray = [picturesDictionary objectForKey:@"PhotosArray"]; PhotosInAlbum.image = [UIImage imageWithContentsOfFile:[imageArray objectAtIndex:1]]; 

但实际上没有任何反应,我的ImageView是空的! 我也有两个button来转发后面的图像。

Plist的内容: 在这里输入图像说明

plist是不正确的,应该是

 Root ---- Dictionary PhotosArray ----- Array Item 0 ------ String -- Beach.jpg 

然后将此代码添加到您的viewController ..确保Interface imageView链接到IBOutlet。

 NSDictionary *picturesDictionary = [NSDictionary dictionaryWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"Photos" ofType:@"plist"]]; NSArray *imageArray = [picturesDictionary objectForKey:@"PhotosArray"]; PhotosInAlbum.image = [UIImage imageNamed:[imageArray objectAtIndex:0]]; 
 PhotosInAlbum.image = [UIImage imageWithContentsOfFile:[imageArray objectAtIndex:1]]; 

这部分应该是这样的

 PhotosInAlbum.image = [UIImage imageNamed:[imageArray objectAtIndex:1]]; 

尝试使用这个:

  PhotosInAlbum.image = [UIImage imageNamed:[imageArray objectAtIndex:1]]; 

你的[imageArray objectAtIndex:1]将只返回图像名称而不是它的path,所以为了使用imageWithContentsOfFile你必须指定图像的path,而不是图像名称。

imageWithContentsOfFile:使用文件的完整path或部分path。 您可以使用imageNamed:方法(使用文件的名称)。 只要更换

 [UIImage imageWithContentsOfFile:[imageArray objectAtIndex:1]]; 

 [UIImage imageNamed:[imageArray objectAtIndex:1]]; 

最初, [UIImage imageNamed:[imageArray objectAtIndex:1]]; 将解决你的问题。 但是你不能用这种方式来解决这个问题,看起来这个问题似乎与这条线是一致的

 [controller.view addSubview:PhotosInAlbum]; 

这可能是你的控制器的情况。 视图是零目前你试图添加你的imageview。

只是确保它不是。 如果是的话,那么你的PhotosInAlbum根本就不是作为子视图添加到controller.view