首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >iOS应用程序崩溃并出现内存不足警告

iOS应用程序崩溃并出现内存不足警告
EN

Stack Overflow用户
提问于 2013-05-29 23:00:56
回答 1查看 320关注 0票数 0

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

代码语言:javascript
运行
复制
@property(nonatomic, retain) NSData *dataCheckFront;

@property(nonatomic, retain) NSData *dataCheckBack;

我存储的图片如下:

代码语言:javascript
运行
复制
- (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,如下所示:

代码语言:javascript
运行
复制
    [((AppDelegate*)[[UIApplication sharedApplication] delegate]) setDataCheckBack:nil];

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

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

如何解决这个问题?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-11-29 19:31:55

您可以将这些图像存储在document/temp目录中,并且无论何时需要,您都可以从document/temp目录中获取这些文件,因此它不会给您带来任何内存问题。如果你使用临时目录,那么当你下次运行应用程序时,你的图像将不会出现在那里。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16817382

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档