我有一些代码随机显示给定的.png图像及其标题。标题逻辑工作正常。但是,由于某种原因,四个图像中只有两个显示。我试过改变顺序以防万一,但只有那两个图像,pic_c和pic_d,才能显示出来。我还检查了拼写,并且文件在资源中并存在于文件系统中。这是显示图像的代码:
NSMutableArray *fileNameArray = [[NSMutableArray alloc] init];
[fileNameArray addObject:[NSString stringWithFormat: @"pic_a"]];
[fileNameArray addObject:[NSString stringWithFormat: @"pic_b"]];
[fileNameArray addObject:[NSString stringWithFormat: @"pic_c"]];
[fileNameArray addObject:[NSString stringWithFormat: @"pic_d"]];
NSMutableArray *titleArray = [[NSMutableArray alloc] init];
[titleArray addObject:[NSString stringWithFormat: @"pic a"]];
[titleArray addObject:[NSString stringWithFormat: @"pic b"]];
[titleArray addObject:[NSString stringWithFormat: @"pic c"]];
[titleArray addObject:[NSString stringWithFormat: @"pic d"]];
int index = arc4random() % [fileNameArray count];
NSString *pictureName = [titleArray objectAtIndex:index];
art_title.text = pictureName;
NSString* imagePath = [ [ NSBundle mainBundle] pathForResource:pictureName ofType:@"png"];
UIImage *img = [ UIImage imageWithContentsOfFile: imagePath];
if (img != nil) { // Image was loaded successfully.
[imageView setImage:img];
[imageView setUserInteractionEnabled:NO];
[img release]; // Release the image now that we have a UIImageView that contains it.
}
[super viewDidLoad];
[fileNameArray release];
[titleArray release];
}
知道为什么会这样吗?
最新信息:如果我删除了titleArray,并且仅使用文件名数组,则会显示所有图像。但是,我仍然希望能够使用titleArray。
答案 0 :(得分:0)
您实际调用的图像文件是什么?在上面的代码中,除了计算它之外,你实际上并没有对finleNameArray做任何事情。您可以使用titleArray中的值来获取图像资源。我认为你需要以下代码:
NSString *filename = [fileNameArray objectAtIndex:index];
然后更改您的imagePath
以使用此代替pictureName
。