使用目录检索图像时出错

时间:2013-08-18 08:44:52

标签: ios directory save uicollectionview

我试图回忆一下我在目录中保存的图像,以便在UICollectionView中显示它。这是执行此操作的代码。

- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view.
    NSMutableArray *allImagesArray = [[NSMutableArray alloc] init];
  NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *documentsDirectory = [paths objectAtIndex:0];
    NSString *location=@"Hats";
    NSString *fPath = [documentsDirectory stringByAppendingPathComponent:location];
    NSArray *directoryContent = [[NSFileManager defaultManager] directoryContentsAtPath: fPath];
    for(NSString *str in directoryContent){
        NSString *finalFilePath = [fPath stringByAppendingPathComponent:str];
        NSData *data = [NSData dataWithContentsOfFile:finalFilePath];
        if(data)
        {
            UIImage *image = [UIImage imageWithData:data];
            [allImagesArray addObject:image];
        }}}

但是我收到的警告显示在最后一行,告诉我allImagesArray的本地声明隐藏了实例变量。我不知道为什么会这样。如果您想查看我的其他代码,请随时提问。非常感谢任何帮助 这是我的.h文件

@interface HatsViewController : UICollectionViewController <UICollectionViewDataSource, UICollectionViewDelegate>
{
    NSMutableArray *allImagesArray;

 }

1 个答案:

答案 0 :(得分:0)

你可能在你的界面文件中声明它 - allImagesArray已经被你的UIViewController“知道”了。

Xcode所说的警告是这样说的:“嘿,你已经宣布了它,而你的viewDidLoad你又在做了!小心” < / p>

要修复它,只需以这种方式启动数组:

而不是NSMutableArray *allImagesArray = [[NSMutableArray alloc] init];

将其替换为allImagesArray = [[NSMutableArray alloc] init];

BINGO更新:事实上,正如您刚刚提到的那样,您已经在界面文件中声明了它,因此您无需在viewDidLoad

中再次声明它