实际上,我第一次使用了stackoverflow来搜索我的问题的解决方案。从UIImagePickerController加载图像时,内存字节数增加
问题是我使用的表格视图中,每个单元格中都有一个ImageView以显示选定的图像和一个打开图像选取器控制器并允许用户从图库或相机中选取图像的按钮。从图库中选择图片后,我使用的功能
NSData *imageData=UIImageJPEGRepresentation(image2, .4);
将其转换成数据,以减少图像的内存大小,然后将其保存在文件目录,最后重新装载表。
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *imagePath = [documentsDirectory stringByAppendingPathComponent:[NSString stringWithFormat:@"%d.png",currentCameraRow]];
if ([[NSFileManager defaultManager] fileExistsAtPath:imagePath])
{
NSLog(@"file is exiting and starting");
if ([[NSFileManager defaultManager] removeItemAtPath:imagePath error:nil]) {
NSLog(@"file is exiting and deleting");
}
}
否则我在保存文档目录的图像,并重新加载UITable。
重新加载表格后,图像应出现在单元格的ImageView中。
现在的问题是,如果我再次选择相同的单元格的图像,并在点击相机按钮后加载它,图像将出现,但内存也将增加.15MB,我检查了仪器这使得我的应用程序崩溃在iPhone 3上。
我实际上在想的是,如果我为同一个单元格选择图像,而不考虑我做它的次数,应该在文档目录中覆盖图像并且在检入仪器时内存大小不应该增加,但这种情况不会发生。
我对这个问题非常沮丧,所以请任何人帮忙。您的帮助将受到高度赞赏。