2

解決できない問題について助けが必要ですが、解決に近づいていると思います。はい、これ:

私のアプリのバージョンでは、次の 2 行を使用してCellforRowAtIndexPathから取得した画像をテーブルビュー ( ) に取り込むことができました。Assetlibrary

ALAsset someAsset = [theAssets objectAtIndex:indexPath.row];
[cell.imageView setImage:[UIImage imageWithCGImage:[someAsset thumbnail]]];

今、私はディレクトリから画像ファイルを読み込もうとしていますNSMutableArray. NSLogを実行すると、ファイル名が表示されますNSMutableArray。しかし、ファイルを画像に変換してテーブルビューに表示するにはどうすればよいAssetlibraryですか? 何度か試しましたが、アプリがクラッシュするか、テーブル ビューに画像のサムネイルが表示されません。たとえば、次のステートメントは画像を表示しませんが、アプリはクラッシュしません。

UIImage *anImage = [UIImage imageWithContentsOfFile:[self.listTable objectAtIndex:0]];

次の行で Image を設定すると、機能しません。誰か助けてください!

更新: NSLog のときの self.listable の内容は次のようになります: "19-10-25 276-10-12.jpg", "19-10-37 276-10-12.jpg", "19- 10-54 276-10-12.jpg」「19-10-65 276-10-12.mov」など

ドキュメント ディレクトリを NSLog すると、/var/mobile/Applications/8CB1368A-AAE2-4815-BD26-A7B7C8536193/Documents になります。

4

1 に答える 1

1

アプリはimageWithContentsOfFile、アプリのサンドボックス内 (例: Documents、バンドルなど) にあるファイルに対してのみ実行できます。これらのファイルがDocumentsフォルダーにある場合は、次の方法でフル パスを取得します。

NSString *documentsFolder = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
NSString *imageFullPath   = [documentsFolder stringByAppendingPathComponent:imageFilename];

その後、それを で使用できますimageWithContentsOfFile


アップデート:

あなたは尋ねました:

directoryContentsNSArray; どのように変換してからNSString[documentsFolder stringByAppendingPathComponent ...]各フルパスをに保存するのNSMutableArrayですか?

あなたは次のようなことをするかもしれません:

NSFileManager *fileManager   = [NSFileManager defaultManager];
NSString *documentsDirectory = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
NSArray *filenames           = [fileManager contentsOfDirectoryAtPath:documentsDirectory error:nil];
NSMutableArray *paths        = [[NSMutableArray alloc] initWithCapacity:[filenames count]];

for (NSString *filename in filenames)
{
    [paths addObject:[documentsDirectory stringByAppendingPathComponent:filename]];
}

NSLog(@"%s filenames = %@", __FUNCTION__, filenames);
NSLog(@"%s paths = %@", __FUNCTION__, paths);
于 2012-10-03T16:58:48.470 に答える