我创建的应用程序仅支持ARC和iOS 7。我的所有属性都被正确标记为弱,并且所有强变量在我需要的地方标记为零。即使使用ARC,内存也不断增加仪器使用
当我用仪器运行我的应用程序时,我发现内存分配不断增加。当我去任何屏幕的内存增加(大约2 MB)。当我弹出这个视图时,内存只下降到几KB。我不知道发生了什么。
而坡平我使用以下的图:
UPDATE:
[UIView animateWithDuration:0.5 animations:^{
CGRect newFrame = aSideMenu.view.frame;
newFrame.origin = SIDE_MENU_VIEW_ORIGIN_FINAL;
[aSideMenu.view setFrame:newFrame];
} completion:^(BOOL finished) {
[sender setUserInteractionEnabled:YES];
}];
在这里,我使用aSideMenu
在框。 aSideMenu
是强变量。你认为我需要创建它的弱引用和使用吗?
__weak id aWeak = aSideMenu;
并使用这个aWeak而不是aSideMenu?
而且在几个块,我使用:
NSDictionary *dict = [NSDictionary dictionaryWithObjectsAndKeys:....nil];
我应该通过'快译通”太多的弱引用?
我不确定这是否是原因。请帮我跟踪这个问题。此外,让我知道是否有其他需要添加在这个问题更好的解决方案。
谢谢
你可以显示哪个在这个块内?你有可能引用哪一个不应该,并且它保留了一些对象......如果你正在访问自己,那么在进入块之前,让自己创建指向自己的弱指针。 –
是的,你应该对side block中的强指针做弱引用。但是,如果对象被释放,弱指针可能为零,因此在使用它之前,请强烈引用块内的弱指针并检查零。对于字典,如果它的实例变量或属性是yes,如果它的方法是局部的,则使用块运算符,如果它在方块中则按照原样使用它。 –