iOS内存似乎无缘无故在应用程序中不断增加 [英] iOS memory constantly increasing in app seemingly for no reason

查看:388
本文介绍了iOS内存似乎无缘无故在应用程序中不断增加的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

这是我的应用程序的入口视图控制器.

This is the entry view controller for my app.

它开始时使用大约6.5mb的内存,然后以每秒约0.1mb的速度连续不断地爬升.

It starts out using about 6.5mb of memory and then continuously climbs for ever at a rate of about 0.1mb a second.

到底我做错了什么?

据我所知,没有任何原因使这些代码不断泄漏,特别是因为它们每次都运行一次.

There is no reason as far as I can see for any of this code to be continuously leaking, especially as it is all run once each time.

此外,删除大部分内容似乎无济于事.想法?

Moreover, deleting most of it doesn't seem to help. Ideas?

//
//  ViewController.m
//  Paddle Jumper
//
//  Created by Chance Daniel on 1/18/14.
//  Copyright (c) 2014 Max Hudson. All rights reserved.
//

//#import "Flurry.h"
#import "ViewController.h"
//#import "startViewController.h"

@implementation ViewController{
    BOOL sceneSetUp;
}

- (void)viewWillLayoutSubviews
{
    if(!sceneSetUp){

        [super viewWillLayoutSubviews];

        // Configure the view
        SKView * skView = (SKView *)self.view;
        //skView.showsFPS = YES;
        skView.showsNodeCount = YES;

        NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
        if([[defaults objectForKey:@"firstTime"] intValue] != 1){
            [defaults setObject:[NSNumber numberWithInt:1] forKey:@"firstTime"];

            [defaults setObject:@"ggr" forKey:@"skinSelected"];
            [defaults setObject:[NSNumber numberWithInt:2] forKey:@"ggrOwned"];

            [defaults setObject:[NSNumber numberWithInt:100] forKey:@"gona"];
            [defaults setObject:[NSNumber numberWithInt:1350] forKey:@"points"];
            [defaults setObject:[NSNumber numberWithInt:7] forKey:@"livesLeftValue"];
            [defaults setObject:[NSNumber numberWithInt:3] forKey:@"shieldsLeftValue"];
            [defaults setObject:[NSNumber numberWithInt:2] forKey:@"lvlTwoLeftValue"];
            [defaults setObject:[NSNumber numberWithInt:0] forKey:@"lvlThreeLeftValue"];
        }

        if(![defaults objectForKey:@"tut_game1"]){
            [defaults setObject:[NSNumber numberWithInt:1] forKey:@"tut_game1"];
            [defaults setObject:[NSNumber numberWithInt:1] forKey:@"tut_store"];
            [defaults setObject:[NSNumber numberWithInt:1] forKey:@"tut_daily"];
        }

        [defaults synchronize];

        // Create and configure the scene.
        //SKScene * startScene = [StartViewController sceneWithSize:skView.bounds.size];
        //startScene.scaleMode = SKSceneScaleModeAspectFill;

        // Present the scene.
        //[skView presentScene:startScene];
        //[skView presentScene:scene];

        sceneSetUp = YES;
    }

}

-(void) switchScene{

}

- (BOOL)shouldAutorotate
{
    return YES;
}

- (NSUInteger)supportedInterfaceOrientations
{
    if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone) {
        return UIInterfaceOrientationMaskAllButUpsideDown;
    } else {
        return UIInterfaceOrientationMaskAll;
    }
}

- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
    // Release any cached data, images, etc that aren't in use.
}

@end

推荐答案

问题是您打开了僵尸.造成泄漏的正是僵尸! (僵尸做什么"似乎是错误的……)其全部目的是防止对象被释放.僵尸打开(是吗?)时,您永远不要检查内存使用情况.

The problem is that you have turned on zombies. Causing leaks is exactly what zombies do! ("What zombies does" seems wrong somehow...) Its entire purpose is to prevent objects from being released. You should never check memory usage when zombies are (is?) turned on.

这篇关于iOS内存似乎无缘无故在应用程序中不断增加的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆