首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >尝试添加图片时应用程序崩溃..?

尝试添加图片时应用程序崩溃..?
EN

Stack Overflow用户
提问于 2011-07-27 15:35:35
回答 1查看 136关注 0票数 0

我是新的iPhone开发人员。我正在升级现有的iPhone应用程序。我正在使用核心数据模型来保存数据。在App中,有15个方框可以添加图片。我正在调用一个分离的线程来创建一个单独的进程。在这个过程中,我将图像保存为两个大小。我添加了带有图像对象的观察者,最后删除了观察者。

我正在使用此方法添加观察者:-

代码语言:javascript
复制
[projectImage addObserver:self forKeyPath:@"fileName" options:NSKeyValueObservingOptionNew context:nil];

和这个制作单独线程的方法:

代码语言:javascript
复制
[NSThread detachNewThreadSelector:@selector(addImage:) toTarget:self withObject:[dic retain]];

这里的AddImage是像这样的方法:

代码语言:javascript
复制
- (void) addImage:(NSDictionary *) dic {
   NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
   UIImage *image = [dic objectForKey:@"image"];
   projectImage = nil;
   projectImage = [dic objectForKey:@"managedObject"];
   [projectImage importImageData:image];
   [projectImage removeObserver:self forKeyPath:@"fileName"];   
   [pool drain];   
}

dic是字典

我的问题是:相机或手机库拍摄了4-5张照片后,它崩溃了。

如果有的话,可以引导我解决这个问题。

提前感谢

EN

回答 1

Stack Overflow用户

发布于 2011-07-27 15:40:57

你正在泄漏内存,可能正因为如此,你的应用程序将会崩溃。我想这个应用程序内存不足,然后就被杀死了。

从中删除[dic retain]

代码语言:javascript
复制
[NSThread detachNewThreadSelector:@selector(addImage:) toTarget:self withObject:[dic retain]];

该对象由方法调用保留。请参阅对detachNewThreadSelector:toTarget:withObject:的讨论。

在分离的线程执行期间,对象aTarget和anArgument被保留,然后被释放。一旦aTarget完成了aSelector方法的执行,分离的线程就会退出(使用exit类方法)。

你的电话应该是

代码语言:javascript
复制
[NSThread detachNewThreadSelector:@selector(addImage:) toTarget:self withObject:dic];
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6840925

复制
相关文章

相似问题

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