小编dra*_*que的帖子

仪器和堆增长,什么时候增长真的是泄漏?

我在设备上使用仪器试图弄清楚我是否有任何内存泄漏或被遗弃.具体来说,我正在使用泄漏和分配.虽然仪器没有指出任何泄漏,但这并不意味着我没有内存问题.几个星期以来,我一直在研究这个问题,而且我似乎没有更接近于弄清楚我有什么问题(呃).

我正在测试一个特定的动作,在动作后重新拍摄并重复.在最初的几个"稳定"世代之后,我可以看到增长和持久计数都从一定数量(几kb)开始.在经过多次重复迭代(比如说10-20)之后,一些(不是全部)慢慢地耗尽到0.它需要一段时间,但确实会发生.存在持久存储器的几代人实际上从未向我展示任何我认为有用的东西,因为堆栈跟踪显示了所有系统库.

所以我的问题是:

  1. 这种行为表明了什么?我有记忆问题吗?在某处有某种类型的懒惰释放内存吗?
  2. 在显示持久内存的迭代海洋中,一个零堆增长迭代意味着什么?
  3. 如果特定代的堆栈跟踪仅指向系统库,这是否意味着该代的堆增长是有效的还是存在错误?或者它仍然意味着我的记忆中有东西存在?
  4. 当堆栈跟踪显示您的库和方法时它意味着什么,但它像系统代码一样灰显,并且有一个小房子图标,与您的库和方法是一条黑线并且有一个小人物图标的线?
  5. 如果我有类似保留周期的东西 - 持续增长是否会保持一致?

任何洞察力的答案都会非常有帮助!

objective-c instruments ios automatic-ref-counting

9
推荐指数
1
解决办法
329
查看次数

viewWillTransitionToSize和错误的navigationBar和statusBarFrame高度

我试图获得GLKViewController的子类的可见绘图区域.在iOS 7中,我将确定方向,然后相应地调整[UIScreen mainScreen] .bounds.size.然后我会减去navigationBar和statusBarFrame的高度,瞧! - 我绘图区域的实际大小.

现在我正在尝试使用viewWillTransitionToSize更新iOS 8,但是当我旋转设备(我有UIInterfaceOrientationMaskAll)时,传递的大小是错误的.实际上,宽度对于视图是正确的,但不是高度(涉及导航栏和状态栏高度).

我已经看到了几个与SO有关的问题,但实际上并没有解决这个问题,至少没有任何帮助我的问题.

这似乎不是我做任何有趣的事情,如果我错了就纠正我:

- (void)viewWillTransitionToSize : (CGSize) size
       withTransitionCoordinator : (id<UIViewControllerTransitionCoordinator>) coordinator
{
    [super viewWillTransitionToSize:size withTransitionCoordinator:coordinator];

    NSLog(@"size changed : orig(%f,%f) mainScreen(%f,%f)", size.width, size.height, [UIScreen mainScreen].bounds.size.width, [UIScreen mainScreen].bounds.size.height);

    [self updateViews:size];
}
Run Code Online (Sandbox Code Playgroud)

过渡到景观的输出:

size changed : orig(568.000000,256.000000) mainScreen(320.000000,568.000000)
Run Code Online (Sandbox Code Playgroud)

从viewWillTransitionToSize传递的高度似乎是:

320 - (2*32) = 256
Run Code Online (Sandbox Code Playgroud)

然后下一轮旋转到肖像:

size changed : orig(320.000000,536.000000) mainScreen(568.000000,320.000000)
Run Code Online (Sandbox Code Playgroud)

从viewWillTransitionToSize传递的高度似乎是:

568 - 32 = 536
Run Code Online (Sandbox Code Playgroud)

32恰好是横向模式中导航栏的高度(如果这意味着什么).

所以我的问题是:viewWillTransitionToSize如何获得这个大小?如何根据方向考虑更改尺寸或消失的额外条形图?最重要的是,为什么它使用这些不正确的高度?

objective-c ios viewwilltransitiontosize

6
推荐指数
1
解决办法
3224
查看次数