ARC下没有发布内存

 全仕介个 发布于 2023-02-13 16:20

我有一个带有父视图控制器的应用程序.它有一些按钮,当单击其中一个按钮时,它会显示一个模态视图控制器(使用XIB).我用来呈现和解散Modal VC的代码是:

iPadViewController *iPadVC = [[iPadViewController alloc] initWithNibName:nil bundle:nil];
        [self presentViewController:iPadVC animated:YES completion:NULL];

并解雇:

-(IBAction)Back:(id)sender{
[self.presentingViewController dismissViewControllerAnimated:YES completion:nil];
}

所以问题是,当我解雇它时,它不会释放任何内存.如果我把它呈现3/4次就会崩溃.我正在使用ARC,从来没有遇到过类似的问题,因为我坚持认为ARC完成了所有的内存管理工作.我确实有一些需要大量空间的背景,他们也没有被释放.我试过了 :

[backgroundImage removeFromSuperview];
backgroundImage=nil;

使用此代码确实减少了内存,我不确定图像是否已被释放,因为下次按下按钮时内存增加到近300mb并因"内存压力"而终止.如果VC被发布它会工作正常,因为它只在iPad上使用160mb,在iPhone上使用65mb.此外,我的图像是通过Xib实用程序选择的:

IMG http://i42.tinypic.com/2z8yiva.png

我尝试使用Xcode仪器并且它没有显示任何泄漏(!)但它确实表明每次单击按钮时分配都在增长和增长.

使用Xcode Tools分配http://i43.tinypic.com/2eutv78.png

在我的ViewController.h上:

IBOutlet UIImageView (...);
IBOutlet UIImageView (...);
IBOutlet UILabel (...);
IBOutlet UIButton (...);
IBOutlet NSTimer (...);
IBOutlet UIImage (...);
IBOutlet UIView (...);

-(IBAction)Back:(id)sender;

@property (nonatomic, assign) int ;
@property (nonatomic) IBOutlet UIButton ;
@property (nonatomic) IBOutlet UIButton ;
@property (nonatomic) IBOutlet UIButton ;
@property (nonatomic) IBOutlet UIView ;
@property (nonatomic) IBOutlet UILabel ;

我试图提供有关我的代码的所有详细信息,但如果您还需要其他任何内容,请告诉我,并非常感谢您!

1 个回答
  • 如果您的图像很大,请看这个问题:在UIScrollView中使用相当大的图像解决UIImageViews使用的内存问题

    总结一下:使用nib文件时,所有已分配的图像都是使用加载的

    [UIImage imageNamed]
    

    已知会导致大量内存分配的方法,因为它总是缓存图像.尝试将图像分配给代码中的视图

    [UIImage imageWithContentsOfFile:path];
    

    方法(在上述问题的答案中描述).

    2023-02-13 16:24 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有