0

目的 c に関する私の知識は限られています。必要なことを行う方法を見つけました。ただ効率が悪いとしか思えません。

アプリケーション バンドル外のディレクトリからすべての画像を MWPhotoBrowser に追加しようとしています。問題は、元の特定の名前がないことです。2f5h3h5y.png.

NSMutableArray *photos = [[NSMutableArray alloc] init];

NSMutableArray *myArray = [[NSMutableArray alloc] init];
NSString *filePath = @"/Library/Application Support/Testing/Testing";
NSString *absolutePath;



MWPhoto *photo;
switch (indexPath.row) {
    case 0:

        myArray = [[[NSFileManager defaultManager] contentsOfDirectoryAtPath:filePath error:NULL] mutableCopy];

        NSLog(@"~~~~~~~~~~~~MY ARRAY COUNT: %d", [myArray count]);

        if ([myArray count] == 1){

            absolutePath = [NSString stringWithFormat:@"%@/%@", filePath, [myArray objectAtIndex:0]];

            photo = [MWPhoto photoWithFilePath:absolutePath];
            [photos addObject:photo];

        } else if ([myArray count] == 2){

            absolutePath = [NSString stringWithFormat:@"%@/%@", filePath, [myArray objectAtIndex:0]];

            photo = [MWPhoto photoWithFilePath:absolutePath]; 
            [photos addObject:photo];

            absolutePath = [NSString stringWithFormat:@"%@/%@", filePath, [myArray objectAtIndex:1]];

            photo = [MWPhoto photoWithFilePath:absolutePath];
            [photos addObject:photo];

        } else if ([myArray count] == 3){

            absolutePath = [NSString stringWithFormat:@"%@/%@", filePath, [myArray objectAtIndex:0]];

            photo = [MWPhoto photoWithFilePath:absolutePath];
            [photos addObject:photo];

            absolutePath = [NSString stringWithFormat:@"%@/%@", filePath, [myArray objectAtIndex:1]];

            photo = [MWPhoto photoWithFilePath:absolutePath];
            [photos addObject:photo];

            absolutePath = [NSString stringWithFormat:@"%@/%@", filePath, [myArray objectAtIndex:1]];

            photo = [MWPhoto photoWithFilePath:absolutePath];
            [photos addObject:photo];

        }

1000 個の "if ステートメント" を設定できないため、この方法が機能しないことはわかっています。それらが範囲外である場合、クラッシュが発生します。誰でも私が必要とするものの実際の例を提供できますか? 説明をいただければ幸いです。ありがとう

4

1 に答える 1

1

ループについて学ぶ必要があります。

NSMutableArray *photos = [[NSMutableArray alloc] init];
NSString *filePath = @"/Library/Application Support/Testing/Testing";
NSArray *myArray = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:filePath error:nil];
for (NSString *filename in myArray) {
    NSString *fullPath = [filePath stringByAppendingPathComponent:filename];
    MWPhoto *photo = [MWPhoto photoWithFilePath:fullPath];
    [photos addObject:photo];
}

ところで-ライブラリパスをハードコーディングしているため、このコードはシミュレータでのみ機能します。

このコードは、ディレクトリ内のファイルがイメージ ファイルのみであることも前提としています。

于 2013-08-11T16:05:47.717 に答える