关于ARC的疑问.求指教啊. ARC ios开发 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 你例子的现象,跟 ARC无关,这个应该是跟生命周期有一定的关系。你可以建一个非ARC的项目,把这段代码加进去,然后把view release加上,,一样会内存增加。 dispatch_async(dispatch_get_main_queue(), ^(){ UIView *view = nil; int i = 100000; while ( i > 0 ) { [view removeFromSuperview]; view = [[UIView alloc] initWithFrame:self.view.bounds]; [self.view addSubview:view]; --i; if ( i % 1000 == 0 ) { NSLog(@"!!!!"); } } });可以试下这段代码,运行中内存不停涨,结束后,内存会降下来。所以我会说可能跟生命周期有关系。具体的解释我说不出来。ARC我仅知道时候替代了手动的release而已。也就是说,使用ARC实际上就是在编译期间编译器自动为每个Objective-C指针变量添加合适的retain, release, autorelease等函数,保存每个变量的生存周期控制在合理的范围内,以期实现代码上的自动内存管理。 你可以手动创建一个自动释放池在这里。默认系统创建的自动释放池是在主运行循环周期完成一次才会drain一次。所以你可以尝试手动在里面建池子,倒池子。 问题解决了,貌似是xcode的bug.用同事的5.0.2编译运行内存就不会一直增加.但是奇怪的是我升级到5.0.2.内存照样是一只增加.难道是电脑的问题???? XMPPFramework 在ios上编译因为sdk6.1的问题编译出问题 求高手指点 自己输出日志怎么处理“%@”格式 关于iphone 开发的,有经验的大牛帮忙下~ 为什么苹果不能在Andriod上开发应用? IAP Restore 求助 学ios系统开发的人很少吧 信鸽 推送 账号无效 3DTouch ShortCut 首次无法使用,求解决。 如何处理didSelectRowAtIndexPath方法,使其适用于在它的每个cell都在三个不同的cell? 在release状态下,编译会报错,在debug下却没问题 ios7的应用图标问题 引用计数问题
你可以建一个非ARC的项目,把这段代码加进去,然后把view release加上,,一样会内存增加。
UIView *view = nil;
int i = 100000;
while ( i > 0 ) {
[view removeFromSuperview];
view = [[UIView alloc] initWithFrame:self.view.bounds];
[self.view addSubview:view];
--i;
if ( i % 1000 == 0 )
{
NSLog(@"!!!!");
}
}
});
可以试下这段代码,运行中内存不停涨,结束后,内存会降下来。
所以我会说可能跟生命周期有关系。
具体的解释我说不出来。ARC我仅知道时候替代了手动的release而已。也就是说,使用ARC实际上就是在编译期间编译器自动为每个Objective-C指针变量添加合适的retain, release, autorelease等函数,保存每个变量的生存周期控制在合理的范围内,以期实现代码上的自动内存管理。