我有一些关于 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/