Mos*_*she 6 memory-management objective-c objective-c-blocks
我正在使用自助服务终端风格的幻灯片应用程序.我有一个UIScrollView显示幻灯片,一个工厂类,它生成幻灯片."幻灯片"本身是UIViewController子类,它们从XIB文件加载并由工厂类定制.在我的主视图控制器中,我设置了滚动视图并启动了一个计时器.计时器每隔N秒调用一次"重载"方法,处理重载并调用工厂类.
工厂类使用的方法如下所示:
- (SlideViewController *)slideFromManagedObject:(Slide *)managedObject{
NSInteger slideType = [managedObject slideType];
switch(slideType){
case kSlideTypeA:
{
//
// configure arguments here
//
return [[SlideViewController alloc] initWithArgument:argument] autorelease];
break;
}
//
// More types here...
//
default:
break;
}
}
Run Code Online (Sandbox Code Playgroud)
我还没有达到定义所有案例的程度,但填写的案例似乎会导致内存使用量的增加.如果我return [[[UIViewController alloc] init] autorelease];在切换/大小写之前添加,我没有按预期看到可见的视图,但我也没有看到这些内存增加.我不确定,但我怀疑这是我正在包装我的幻灯片生成代码的"C块".
有些事情需要注意:
当应用程序启动时,我看到内存平台从大约400千字节到大约两倍.然后,当幻灯片进行时,调用其生成代码包含在花括号中的任何幻灯片,内存平台再次向上.
这种行为似乎每次发布只发生一次 - 当应用程序循环遍历所有幻灯片时,平台再次发生.然而,如果应用程序背景然后重新启动,则平台会再次发生,从而消耗更多内存.
当我离开应用程序过夜,大约10小时40分钟时,内存使用量从大约1.44兆字节缓慢上升到接近1.57兆字节的某个地方.我怀疑其中有一些其他泄漏可能已经通过我的调整来修复,但是从大约800千字节到1.4到1.5兆字节之间的主要跳跃仍然是一个问题.
仪器没有报告任何泄漏,但平稳期关注我.
什么可能导致内存增加?
编辑:
所以我不认为这是块,因为使用if/else似乎做同样的事情.以下是Allocations仪器运行的屏幕截图:

哪里可能坚持这些观点?
| 归档时间: |
|
| 查看次数: |
376 次 |
| 最近记录: |