0

我用这个将我的图像保存在 NSDocumentsDirectory 中:

for (int i = 0; i < info.count; i++) {
    NSLog(@"%@", [info objectAtIndex:i]);
    NSString *savedImagePath = [documentsDir stringByAppendingPathComponent:[NSString stringWithFormat:@"oneSlotImages%d.png", i]];
    ALAssetRepresentation *rep = [[info objectAtIndex: i] defaultRepresentation];
    UIImage *image = [UIImage imageWithCGImage:[rep fullResolutionImage]];
    NSData *imageData = UIImagePNGRepresentation(image);
    [imageData writeToFile:savedImagePath atomically:YES];       
}

我很难将它们加载到数组中。我在网上搜索过这个。这个可以用NSDocumentsDirectory吗?

for(int i = 1; i <= 21; i++)
{
    [images addObject:[UIImage imageWithContentsOfFile:[[NSBundle mainBundle] pathForResource:[NSString stringWithFormat:@"Images%d.png", i] ofType:@"jpg"]]];
}
4

1 回答 1

1

这是您的实际代码吗?如果是这样的话,有(至少)两个问题。首先,文件名在保存和加载时略有不同。其次,您从捆绑包中加载图片,而不是从文档目录中加载图片。

您想以这种方式加载它们吗?

另请注意,如果您有 20 张全分辨率照片,那么将它们加载到 UIImages 数组中可能是一个糟糕的主意。它可能会因为内存不足而崩溃。

NSArray *paths = NSSearchPathForDirectoriesInDomains( NSDocumentDirectory,    NSUserDomainMask ,YES );
NSString *documentsDir = [paths objectAtIndex:0];
for(int i = 1; i <= 21; i++)
{
  NSString *savedImagePath = [documentsDir stringByAppendingPathComponent:[NSString stringWithFormat:@"oneSlotImages%d.png", i]];
  [images addObject:[UIImage imageWithContentsOfFile:savedImagePath]];
}
于 2012-05-30T02:15:43.187 回答