我需要一些我无法解决的问题的帮助,但我认为我接近解决方案。这是它:
在我的应用版本中,我能够使用以下两行填充从CellforRowAtIndexPath
获取的图像的{(1}})表格视图:
Assetlibrary
现在,我正在尝试从目录中读取图像文件并存储在ALAsset someAsset = [theAssets objectAtIndex:indexPath.row];
[cell.imageView setImage:[UIImage imageWithCGImage:[someAsset thumbnail]]];
中。当我NSMutableArray
NSLog
时,我可以看到文件名。但是,我现在如何将文件转换为图像并显示在我的tableview中,就像我使用NSMutableArray
时一样?我已经尝试了几次,但应用程序崩溃或者没有在表格视图中显示图像缩略图。例如,此语句不显示图像,但应用程序不会崩溃:
Assetlibrary
当我在下一行中设置图像时,它不起作用。有人请帮忙!
更新:当我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。
答案 0 :(得分:1)
应用只能imageWithContentsOfFile
位于应用沙盒中的文件(例如Documents
,捆绑包等)。如果这些文件位于Documents
文件夹中,则会获得完整路径:
NSString *documentsFolder = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
NSString *imageFullPath = [documentsFolder stringByAppendingPathComponent:imageFilename];
然后,您可以在imageWithContentsOfFile
中使用它。
<强>更新强>
你问:
我的
directoryContents
是NSArray
;如何将其转换为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);