• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

iOS内存在app中不断增加似乎无缘无故

[复制链接]
菜鸟教程小白 发表于 2022-12-12 20:00:33 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

这是我的应用的入口 View Controller 。

它开始使用大约 6.5mb 的内存,然后以每秒大约 0.1mb 的速度不断攀升。

我到底做错了什么?

据我所知,没有任何理由可以让任何代码持续泄漏,尤其是因为它每次都运行一次。

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

//
//  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

Instruments



Best Answer-推荐答案


问题是你打开了僵尸。造成泄漏正是僵尸所做的! (“僵尸做什么”似乎是错误的......)它的全部目的是防止对象被释放。当僵尸(是?)打开时,您永远不应该检查内存使用情况。

关于iOS内存在app中不断增加似乎无缘无故,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22317374/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap