0

ディレクトリ内に保存した画像を呼び出して、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;

 }
4

1 に答える 1

0

おそらく、インターフェイス ファイル内で宣言しています。allImagesArray は、UIViewController によって既に「認識」されています。

Xcode が警告で言っていることは、次のようなものですviewDidLoad

これを修正するには、次の方法でアレイを開始します。

それ以外のNSMutableArray *allImagesArray = [[NSMutableArray alloc] init];

で置き換えますallImagesArray = [[NSMutableArray alloc] init];

BINGO の更新: 実際、ここに記載したように、インターフェイス ファイルで既に宣言しているため、再度宣言する必要はありません。viewDidLoad

于 2013-08-18T08:48:02.887 に答える