Tag: 内存警告

viewDidUnload不调用alloc / init初始化的viewcontroller没有xib文件

为什么不调用viewDidUnload方法,当我不使用xib和使用alloc / init来初始化我的ViewController时,我通过模拟器模拟任何iOS版本的内存警告? 似乎这个方法从来没有被调用。 如果我通过使用xib文件的alloc / initWithNibName创build控制器,则成功调用viewDidUnload方法。 为什么会发生? xib文件是否需要所有视图控制器正常处理内存警告?

内存警告使用UIImagePickerController时

当我在iPhone上使用相机时,我得到一个内存警告。 我也使用ARC。 当您拍摄照片并按下相机视图控制器上的“使用照片”button时,我会收到内存警告。 意图是一旦“使用照片”button被按下,它改变了一个ImageView的内容。 我认为内存问题可能是由于捕获的图像是全屏的,而ImageView是250h 250w。 但我试图缩小相机拍摄的图像的大小,然后将其分配给ImageView。 但是,这仍然不起作用,即使我把它调整到100 x 100。 其次,我没有把相机拍摄的照片分配给ImageView,但仍然有内存警告。 我看了这里的其他答案,并试图上述两个,但它仍然在那里。 我将在下面显示我的代码。 这会影响我提交给应用程序商店吗? 当然,如果这是一个常见的问题,这是一个错误或有工作? 如果能够查看提供的代码并发现错误或者build议如何处理这种内存警告,那将会很棒。 我的应用程序是95 +%完成除了这个记忆警告,所以它接近提交时间。 我的代码: – (IBAction)takePhoto:(id)sender { self.imagePicker = [[UIImagePickerController alloc] init]; self.imagePicker.delegate = self; self.imagePicker.allowsEditing=NO; if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]) { [self.imagePicker setSourceType:UIImagePickerControllerSourceTypeCamera]; [self presentViewController:self.imagePicker animated:YES completion:NULL]; } else{ [self.imagePicker setSourceType:UIImagePickerControllerSourceTypePhotoLibrary]; [self presentViewController:self.imagePicker animated:YES completion:NULL]; } } – (IBAction)choosePhoto:(id)sender { self.imagePicker2 […]

在使用UIImagePickerControllerOriginalImage从UIImagePickerController获取图像时获取内存警告

我正在使用UIImagePickerController从相机获取图像。 刚刚捕捉图像,并获取它通过使用UIImagePickerControllerOriginalImage获取内存警告。 我在iOS上使用iphone 4s。 代码在这里 – (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info { [self dismissViewControllerAnimated:YES completion:nil]; UIImage* originalImage = [info objectForKey:UIImagePickerControllerOriginalImage]; //Getting memory warning after this line NSData *data =UIImageJPEGRepresentation(originalImage, 0.1); }

为什么我只有7 MB内存分配内存警告?

我在iPod touch设备上运行我的iOS应用程序, 即使总分配高峰仅为7 MB (如下图所示), 我也会收到内存警告 : 我觉得奇怪的是: 左峰(时间0.00)对应于20 MB分配的内存 (简介场景),尽pipe这不给任何内存警告。 中央高峰(时间35.00)对应于分配的7 MB内存 (游戏场景正被推送),并给出了内存警告。 我不明白为什么我得到这些警告,如果总内存只有7 MB。 这是正常的吗? 我怎样才能避免这一点? 看看分配密度,我们可以看到下面的模式,这对我(Intro)场景被推入的时刻(0.00)和游戏场景被推入的时刻(35.00)并没有显示出太大的差别。 由于密度峰值相似,我会假设记忆警告是由于我无法发现的其他东西 。 编辑: 我一直在build议使用“活动监视器”,但不幸的是,我的应用程序崩溃时, 只有30 MB的内存分配加载游戏场景。 这是活动监视器报告。 看看这个报告,我可以看到大约105 MB的总实际内存使用总和。 鉴于这应该指RAM内存,并给予我的模型应该有256 MB的RAM,这不应该导致APP崩溃或内存泄漏问题。 我运行泄漏监视器,并没有显示任何泄漏我的应用程序。 我也杀了所有其他的应用程序。 然而,分析报告,我看到了一个令人惊讶的167 MB的虚拟内存值与我的应用程序相关联。 这是正常的吗? 这个价值是什么意思? 这可能是坠机的原因吗? 如何检测我的代码的哪个区域对此负责? 我的iPod是第四代型号,具有6.4 GB容量(内存)和仅有290 MB的内存空间。 我不知道这是否会影响虚拟内存分页性能。 编辑2:我也看了更多的SpringBoard和它的虚拟内存使用量是180 MB。 这是正常的吗? 我发现一些问题/答案似乎表明SpringBoard负责自动释放对象(它应该是pipe理屏幕和家庭的过程,但我不确定它是否也与内存pipe理有关)。 它是否正确? 另一个说明。 我正在使用ARC。 不过,我不确定这个问题,因为没有明显的内存泄漏,XCode应该将代码添加release / dealloc / retain调用到编译的二进制文件。 编辑3:如前所述,我使用ARC和Cocos2d(2.0)。 […]