【发布时间】:2013-09-14 20:38:10
【问题描述】:
我的应用遇到了一些奇怪的内存问题。
经过一些调试后,我已将问题隔离到具有一个视图控制器的新项目中。
所以现在我的测试应用程序包含一个UINavigationController 连接到一个ViewController 并带有一个按钮来推动下一个ViewController:
#import "ViewController.h"
#import "AFNetworking.h"
@interface ViewController ()
@end
@implementation ViewController
- (void)viewDidLoad
{
[super viewDidLoad];
for(int i=0;i<100;i++)
{
NSString *rightImageUrl = [NSString stringWithFormat:@"%@/%@-iphone%@.png",ImagesURL,[NSString stringWithFormat:@"%d",i],@"4"];
UIImageView *rightImageView = [[UIImageView alloc]initWithFrame:CGRectMake(6, 50*i , 139, 200)];
[rightImageView setImageWithURL:[NSURL URLWithString:rightImageUrl]];
[self.view addSubview:rightImageView];
}
}
以上是我现在测试应用程序中的所有代码。
根据 Instruments,上面需要 X 内存量(10mb,20mb .. 取决于循环的数量)问题是当我弹出 ViewController 时,从上面分配的内存不会被释放.
我尝试使用 @autoreleasepool 将代码包装在 for 循环中,但效果不大。
请指教
【问题讨论】:
-
这如何编译? setImageWithURL 是 IKImageView 方法,而不是 UIImageView 方法。
-
@rdelmar 这是一个
UIImageView+AFNetworking方法。 -
@Rob,哦,好吧,错过了那个 afnetworking 标签。
标签: ios objective-c memory-management automatic-ref-counting afnetworking