objective-c - 使用 ARC 进行内存管理 - 性能问题

标签 objective-c ios memory-management automatic-ref-counting

我有一些关于 ARC 内存管理的一般初学者问题。我在我的应用程序中遇到了一些性能问题 - 无论是在我的设备上还是在模拟器上。性能问题仅在我以“视网膜”模式运行模拟器时出现,因此我认为我一定有“内存”问题。当我在我的设备上测试该应用程序时,我还在我的日志中看到了“收到内存警告”。

首先,当我创建要在 subview 中使用的 UIImage 时,我是否应该在将其分配给 subview 后将该图像设置为 nil?示例:

UIImage * image = [UIImage imageNamed:@"Image.png"];
UIImageView * imageView = [[UIImageView alloc] initWithImage:image];
[self.view addSubview:imageView];
// Should I set image && imageView to nil here?

这是否也适用于其他局部变量和/或实例变量?

其次,我目前使用的ARC创建实例变量的正确方式是什么,

UiView  * view;

// And implement it in @implementation
view = [[UIView alloc] initWithFrame:frame];

如有任何指导和提示,我们将不胜感激。指向优秀 ARC 资源的链接也很棒。

最佳答案

您的代码没问题。那里的内存管理没有问题。唯一会导致问题的是 [UIImage imageNamed:] 因为它会兑现加载的图像。尝试使用 [[UIImage alloc] initWithContentsOfFile:] 代替。

您可以找到有关 ARC 的好文章 here

关于objective-c - 使用 ARC 进行内存管理 - 性能问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8029021/

相关文章:

ios - 选项卡栏在 segue 后消失

objective-c - 在存在ARC的情况下初始化iVar变量的正确方法是什么

iphone - 检测是否触摸了 UIView

ios - 嵌套的 ActionSheetPicker,另一个完成 block 内的选择器

ios - 仅当 UIView 已布局时才发送数据源信息?

python - 将 ctypes 与 cuda 结合使用,在脚本末尾出现段错误(核心转储)错误

ios - 将目标添加到所有 UIButtons 的 touchUpInside 事件

ios - 无法到达 XCTestCase 中的断点

c - malloc分配的内存保护标志是什么?

java - log4j 1.2 - 异步记录器内存使用限制设置