2011-09-22 33 views
0

我有一些代码,它随机显示给定的.png图像及其标题。标题逻辑工作正常。但是,由于某种原因,只显示四个图像中的两个。为了防万一,我试过改变顺序,但只有那两张图片pic_c和pic_d才会显示出来。我还检查了拼写,并且这些文件在资源中并存在于文件系统中。下面是显示图像的代码:只有一些PNG图像显示,其他人没有明显的理由

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

+0

谢谢 - 另一双眼睛帮助。 –