只有一些png图像显示,其他人没有明显的原因

时间:2011-09-22 03:04:13

标签: ios image

我有一些代码随机显示给定的.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。

1 个答案:

答案 0 :(得分:0)

您实际调用的图像文件是什么?在上面的代码中,除了计算它之外,你实际上并没有对finleNameArray做任何事情。您可以使用titleArray中的值来获取图像资源。我认为你需要以下代码:

NSString *filename = [fileNameArray objectAtIndex:index];

然后更改您的imagePath以使用此代替pictureName