繁体   English   中英

iOS应用程序崩溃并显示内存不足警告

[英]iOS app getting crashed with low memory warning

我正在使用UIImagePickerController在我的应用程序中拍摄两张照片。 我将这两个图像以NSData格式存储在AppDelegate中声明的两个属性中,这些属性声明如下。

@property(nonatomic, retain) NSData *dataCheckFront;

@property(nonatomic, retain) NSData *dataCheckBack;

我存储的图像如下:

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info{
      NSLog(@"camera took photo...");


      [self cleanUpOverlayAndCameraView];

      if (iCheckSide==FRONT) {

         NSData *dataImage= [[NSData alloc] initWithData:UIImageJPEGRepresentation([info objectForKey:UIImagePickerControllerOriginalImage], 1.0)];
        ((AppDelegate*)[[UIApplication sharedApplication] delegate]).dataCheckFront= dataImage;
         [dataImage release];
         dataImage= nil;
     }
     else {
         NSData *dataImage= [[NSData alloc] initWithData:UIImageJPEGRepresentation([info objectForKey:UIImagePickerControllerOriginalImage], 1.0)];
         ((AppDelegate*)[[UIApplication sharedApplication] delegate]).dataCheckBack= dataImage;
         [dataImage release];
         dataImage= nil;

     }
 }

我需要将来的某个时间点的图像,并且无法避免将其存储在某处。 使用后,我将这些属性设置为nil,如下所示:

    [((AppDelegate*)[[UIApplication sharedApplication] delegate]) setDataCheckBack:nil];

    [((AppDelegate*)[[UIApplication sharedApplication] delegate]) setDataCheckFront:nil];

但是,在将其设置为nil之前,该应用由于内存不足问题而终止。

如何解决呢?

您可以将这些图像存储在document / temp目录本身中,并且在需要时可以从document / temp目录中获取文件,因此不会出现任何内存问题。 而且,如果您使用的是temp目录,则下次运行该应用程序时,图像将不再存在。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM