这是我的应用程序的入口视图控制器。
它开始使用大约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
答案 0 :(得分:1)
问题是你已经打开了僵尸。造成泄密正是僵尸所做的! (“僵尸做什么”似乎错了......)它的全部目的是防止物体被释放。当zombies(是?)打开时,你永远不应该检查内存使用情况。
答案 1 :(得分:0)
两个建议,
尝试替换
SKView * skView = (SKView *)self.view;
带
__weak SKView * skView = (SKView *)self.view;
将以下代码保留在if
条件之外。
[super viewWillLayoutSubviews];