0

こんにちは、iPad アプリを作成しようとしている初心者です。すべてがシミュレーターでスムーズに実行されますが、デバイスでは実行されません。私は 5 つのビュー コントローラーを持っていますが、特にモンスター アニメーションの実行時にクラッシュするのは 5 番目のコントローラーです。

そのView Controllerからここにコードを投稿しています。笑わないでください。

また、メモリ警告を受信したとも表示されます。どうしたの?

誰かありがとう。

import "FifthViewController.h"
#import "ViewController.h"



@interface FifthViewController ()

@end

@implementation FifthViewController


@synthesize doorImage;

@synthesize flagImage;

@synthesize kuckuImage;

@synthesize treImage;

@synthesize moppImage;


-(IBAction)trollljud:(id)sender{ 
    CFBundleRef mainBundle = CFBundleGetMainBundle(); 
    CFURLRef soundFileURLRef; 
    soundFileURLRef = CFBundleCopyResourceURL(mainBundle, (CFStringRef) @"trolleri3", CFSTR ("mp3"), NULL);
    UInt32 soundID; 
    AudioServicesCreateSystemSoundID(soundFileURLRef, &soundID); 
    AudioServicesPlaySystemSound(soundID); 
    CFRelease(soundFileURLRef); }

-(IBAction)monsterljud:(id)sender{ 
    CFBundleRef mainBundle = CFBundleGetMainBundle(); 
    CFURLRef soundFileURLRef; 
    soundFileURLRef = CFBundleCopyResourceURL(mainBundle, (CFStringRef) @"Monsterljud", CFSTR ("mp3"), NULL);
    UInt32 soundID; 
    AudioServicesCreateSystemSoundID(soundFileURLRef, &soundID); 
    AudioServicesPlaySystemSound(soundID); 
    CFRelease(soundFileURLRef); }

-(IBAction)dorrljud:(id)sender{ 
    CFBundleRef mainBundle = CFBundleGetMainBundle(); 
    CFURLRef soundFileURLRef; 
    soundFileURLRef = CFBundleCopyResourceURL(mainBundle, (CFStringRef) @"dörrljud", CFSTR ("mp3"), NULL);
    UInt32 soundID; 
    AudioServicesCreateSystemSoundID(soundFileURLRef, &soundID); 
    AudioServicesPlaySystemSound(soundID); 
    CFRelease(soundFileURLRef); }

-(IBAction)kuckuljud:(id)sender{ 
    CFBundleRef mainBundle = CFBundleGetMainBundle(); 
    CFURLRef soundFileURLRef; 
    soundFileURLRef = CFBundleCopyResourceURL(mainBundle, (CFStringRef) @"Fun24", CFSTR ("mp3"), NULL); 
    UInt32 soundID; 
    AudioServicesCreateSystemSoundID(soundFileURLRef, &soundID); 
    AudioServicesPlaySystemSound(soundID); 
    CFRelease(soundFileURLRef); }

-(IBAction)flaggljud:(id)sender{ 
    CFBundleRef mainBundle = CFBundleGetMainBundle(); 
    CFURLRef soundFileURLRef; 
    soundFileURLRef = CFBundleCopyResourceURL(mainBundle, (CFStringRef) @"Flag1", CFSTR ("mp3"), NULL); 
    UInt32 soundID; 
    AudioServicesCreateSystemSoundID(soundFileURLRef, &soundID); 
    AudioServicesPlaySystemSound(soundID); 
    CFRelease(soundFileURLRef); }

-(IBAction)change:(id)sender{
    ViewController *two = [[ViewController alloc] initWithNibName:nil bundle:nil];
    two.modalTransitionStyle = UIModalTransitionStyleCrossDissolve;
    [self presentModalViewController:two  animated:YES];
    [theAudio stop];
    [two release];

}


-(IBAction)hideButton

{
    Button2.hidden=FALSE; }

-(IBAction)hideButton2

{
    Button3.hidden=TRUE; }


- (void) openDoor {
    [doorImage startAnimating]; }

- (void) kucku {
    [kuckuImage startAnimating]; }

- (void) flag {
    [flagImage startAnimating]; }

- (void) tre {
    [treImage startAnimating]; }

- (void) mopp {
    [moppImage startAnimating]; }


-(IBAction)oneFingerSwipeLeft:(UITapGestureRecognizer *)recognizer {

    CFBundleRef mainBundle = CFBundleGetMainBundle(); 
    CFURLRef soundFileURLRef; 
    soundFileURLRef = CFBundleCopyResourceURL(mainBundle, (CFStringRef) @"Droid2", CFSTR ("mp3"), NULL); 
    UInt32 soundID; 
    AudioServicesCreateSystemSoundID(soundFileURLRef, &soundID); 
    AudioServicesPlaySystemSound(soundID); 
    CFRelease(soundFileURLRef);
     }

-(IBAction)oneFingerSwipeRight:(UITapGestureRecognizer *)recognizer {

    CFBundleRef mainBundle = CFBundleGetMainBundle(); 
    CFURLRef soundFileURLRef; 
    soundFileURLRef = CFBundleCopyResourceURL(mainBundle, (CFStringRef) @"Droid", CFSTR ("mp3"), NULL); 
    UInt32 soundID; 
    AudioServicesCreateSystemSoundID(soundFileURLRef, &soundID); 
    AudioServicesPlaySystemSound(soundID); 
    CFRelease(soundFileURLRef);
     }

-(IBAction)oneFingerSwipeUp:(UITapGestureRecognizer *)recognizer {

    CFBundleRef mainBundle = CFBundleGetMainBundle(); 
    CFURLRef soundFileURLRef; 
    soundFileURLRef = CFBundleCopyResourceURL(mainBundle, (CFStringRef) @"Wolf2", CFSTR ("mp3"), NULL); 
    UInt32 soundID; 
    AudioServicesCreateSystemSoundID(soundFileURLRef, &soundID); 
    AudioServicesPlaySystemSound(soundID); 
    CFRelease(soundFileURLRef);
     }

-(IBAction)oneFingerSwipeDown:(UITapGestureRecognizer *)recognizer {

    CFBundleRef mainBundle = CFBundleGetMainBundle(); 
    CFURLRef soundFileURLRef; 
    soundFileURLRef = CFBundleCopyResourceURL(mainBundle, (CFStringRef) @"Snake2", CFSTR ("mp3"), NULL); 
    UInt32 soundID; 
    AudioServicesCreateSystemSoundID(soundFileURLRef, &soundID); 
    AudioServicesPlaySystemSound(soundID); 
    CFRelease(soundFileURLRef);
     }



- (void)viewDidLoad{

    {
        [super viewDidLoad];

        UISwipeGestureRecognizer *oneFingerSwipeLeft = [[[UISwipeGestureRecognizer alloc] 
                                                         initWithTarget:self 
                                                         action:@selector(oneFingerSwipeLeft:)] autorelease];
        [oneFingerSwipeLeft setDirection:UISwipeGestureRecognizerDirectionLeft];
        [[self view] addGestureRecognizer:oneFingerSwipeLeft];

        UISwipeGestureRecognizer *oneFingerSwipeRight = [[[UISwipeGestureRecognizer alloc] 
                                                          initWithTarget:self 
                                                          action:@selector(oneFingerSwipeRight:)] autorelease];
        [oneFingerSwipeRight setDirection:UISwipeGestureRecognizerDirectionRight];
        [[self view] addGestureRecognizer:oneFingerSwipeRight];

        UISwipeGestureRecognizer *oneFingerSwipeUp = [[[UISwipeGestureRecognizer alloc] 
                                                       initWithTarget:self 
                                                       action:@selector(oneFingerSwipeUp:)] autorelease];
        [oneFingerSwipeUp setDirection:UISwipeGestureRecognizerDirectionUp];
        [[self view] addGestureRecognizer:oneFingerSwipeUp];

        UISwipeGestureRecognizer *oneFingerSwipeDown = [[[UISwipeGestureRecognizer alloc] 
                                                         initWithTarget:self 
                                                         action:@selector(oneFingerSwipeDown:)] autorelease];
        [oneFingerSwipeDown setDirection:UISwipeGestureRecognizerDirectionDown];
        [[self view] addGestureRecognizer:oneFingerSwipeDown];



    }


    {
        [super viewDidLoad];

        [Button2 setHidden:TRUE];
    }

    {
        NSString *path = [[NSBundle mainBundle] pathForResource:@"Okenljud" ofType:@"mp3"];
        if (theAudio) [theAudio release];
        {
            theAudio = [[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath:path] error:NULL];
            [theAudio play];
            theAudio.numberOfLoops = -1;
        }
        [super viewDidLoad];
    }
    {
        [super viewDidLoad];
        NSArray *doorFrames = [NSArray array];
        doorFrames = [[NSArray alloc] initWithObjects:
                      [UIImage imageNamed:@"dörr51.png"],
                      [UIImage imageNamed:@"dörr51.png"],
                      [UIImage imageNamed:@"dörr52.png"],          
                      [UIImage imageNamed:@"dörr53.png"],
                      [UIImage imageNamed:@"dörr54.png"],
                      [UIImage imageNamed:@"dörr55.png"],
                      [UIImage imageNamed:@"dörr56.png"],
                      [UIImage imageNamed:@"dörr57.png"], Nil];
        doorImage.animationImages = doorFrames;
        doorImage.animationDuration = 3;
        doorImage.animationRepeatCount = 1;
    }


    {
        [super viewDidLoad];
        NSArray *kuckuFrames = [NSArray array];
        kuckuFrames = [[NSArray alloc] initWithObjects:
                       [UIImage imageNamed:@"Kuckuhh1.png"],
                       [UIImage imageNamed:@"Kuckuhh2.png"],
                       [UIImage imageNamed:@"Kuckuhh3.png"],          
                       [UIImage imageNamed:@"Kuckuhh2.png"],
                       [UIImage imageNamed:@"Kuckuhh1.png"], Nil];
        kuckuImage.animationImages = kuckuFrames;
        kuckuImage.animationDuration = 1;
        kuckuImage.animationRepeatCount = 1;
    }

    {
        [super viewDidLoad];
        NSArray *moppFrames = [NSArray array];
        moppFrames = [[NSArray alloc] initWithObjects:
                         [UIImage imageNamed:@"m1.png"],
                         [UIImage imageNamed:@"m2.png"],
                         [UIImage imageNamed:@"m3.png"],
                         [UIImage imageNamed:@"monster15.png"],
                         [UIImage imageNamed:@"monster16.png"],
                         [UIImage imageNamed:@"monster17.png"],
                         [UIImage imageNamed:@"m4.png"],
                         [UIImage imageNamed:@"monster18.png"],
                         [UIImage imageNamed:@"monster19.png"],
                         [UIImage imageNamed:@"m5.png"],
                         [UIImage imageNamed:@"m6.png"],
                         [UIImage imageNamed:@"m7.png"],
                         [UIImage imageNamed:@"m8.png"],
                         [UIImage imageNamed:@"m9.png"],
                         [UIImage imageNamed:@"m10.png"],
                         [UIImage imageNamed:@"m11.png"],
                         [UIImage imageNamed:@"m12.png"],
                         [UIImage imageNamed:@"m13.png"],
                         [UIImage imageNamed:@"m14.png"],
                         [UIImage imageNamed:@"monster20.png"],
                         [UIImage imageNamed:@"monster21.png"],
                         [UIImage imageNamed:@"monster22.png"],
                         [UIImage imageNamed:@"monster23.png"],
                         [UIImage imageNamed:@"monster24.png"],
                         [UIImage imageNamed:@"monster25.png"],
                         [UIImage imageNamed:@"monster26.png"], Nil];
        moppImage.animationImages = moppFrames;
        moppImage.animationDuration = 19;
        moppImage.animationRepeatCount = 1;
    }


    {
        [super viewDidLoad];
        NSArray *fagelBilder = [NSArray array];
        fagelBilder = [[NSArray alloc] initWithObjects:
                       [UIImage imageNamed:@"1.png"],
                       [UIImage imageNamed:@"2.png"],
                       [UIImage imageNamed:@"3.png"],
                       [UIImage imageNamed:@"4.png"],
                       [UIImage imageNamed:@"5.png"],
                       [UIImage imageNamed:@"6.png"],
                       [UIImage imageNamed:@"7.png"],
                       [UIImage imageNamed:@"8.png"],
                       [UIImage imageNamed:@"9.png"],
                       [UIImage imageNamed:@"10.png"],
                       [UIImage imageNamed:@"11.png"],
                       [UIImage imageNamed:@"12.png"],
                       [UIImage imageNamed:@"13.png"],
                       [UIImage imageNamed:@"14.png"],
                       [UIImage imageNamed:@"15.png"],
                       [UIImage imageNamed:@"16.png"],
                       [UIImage imageNamed:@"17.png"],
                       [UIImage imageNamed:@"18.png"],
                       [UIImage imageNamed:@"16.png"],
                       [UIImage imageNamed:@"17.png"],
                       [UIImage imageNamed:@"18.png"],
                       [UIImage imageNamed:@"16.png"],
                       [UIImage imageNamed:@"17.png"],
                       [UIImage imageNamed:@"18.png"],
                       [UIImage imageNamed:@"16.png"],
                       [UIImage imageNamed:@"17.png"],
                       [UIImage imageNamed:@"18.png"],
                       [UIImage imageNamed:@"16.png"],
                       [UIImage imageNamed:@"17.png"],
                       [UIImage imageNamed:@"18.png"],
                       [UIImage imageNamed:@"16.png"],
                       [UIImage imageNamed:@"17.png"],
                       [UIImage imageNamed:@"18.png"],
                       [UIImage imageNamed:@"16.png"],
                       [UIImage imageNamed:@"17.png"],
                       [UIImage imageNamed:@"18.png"],
                       [UIImage imageNamed:@"16.png"],
                       [UIImage imageNamed:@"17.png"],
                       [UIImage imageNamed:@"18.png"],
                       [UIImage imageNamed:@"16.png"],
                       [UIImage imageNamed:@"17.png"],
                       [UIImage imageNamed:@"18.png"],
                       [UIImage imageNamed:@"16.png"],
                       [UIImage imageNamed:@"17.png"],
                       [UIImage imageNamed:@"18.png"],
                       [UIImage imageNamed:@"16.png"],
                       [UIImage imageNamed:@"17.png"],
                       [UIImage imageNamed:@"18.png"],
                       [UIImage imageNamed:@"16.png"],
                       [UIImage imageNamed:@"17.png"],
                       [UIImage imageNamed:@"18.png"],
                       [UIImage imageNamed:@"16.png"],
                       [UIImage imageNamed:@"17.png"],
                       [UIImage imageNamed:@"18.png"],
                       [UIImage imageNamed:@"16.png"],
                       [UIImage imageNamed:@"17.png"],
                       [UIImage imageNamed:@"18.png"],
                       [UIImage imageNamed:@"16.png"],
                       [UIImage imageNamed:@"17.png"],
                       [UIImage imageNamed:@"18.png"],
                       [UIImage imageNamed:@"19.png"], 
                       [UIImage imageNamed:@"20.png"],
                       [UIImage imageNamed:@"21.png"],
                       [UIImage imageNamed:@"22.png"],
                       [UIImage imageNamed:@"23.png"],
                       [UIImage imageNamed:@"24.png"],
                       [UIImage imageNamed:@"25.png"],
                       [UIImage imageNamed:@"26.png"],
                       [UIImage imageNamed:@"27.png"],
                       [UIImage imageNamed:@"28.png"],
                       [UIImage imageNamed:@"29.png"],
                       [UIImage imageNamed:@"30.png"],
                       [UIImage imageNamed:@"31.png"],
                       [UIImage imageNamed:@"32.png"],
                       [UIImage imageNamed:@"33.png"],
                       [UIImage imageNamed:@"38.png"],
                       [UIImage imageNamed:@"14.png"],
                       [UIImage imageNamed:@"13.png"],
                       [UIImage imageNamed:@"12.png"],
                       [UIImage imageNamed:@"11.png"],
                       [UIImage imageNamed:@"10.png"],
                       [UIImage imageNamed:@"9.png"],
                       [UIImage imageNamed:@"8.png"],
                       [UIImage imageNamed:@"7.png"],
                       [UIImage imageNamed:@"6.png"],
                       [UIImage imageNamed:@"5.png"],
                       [UIImage imageNamed:@"4.png"],
                       [UIImage imageNamed:@"3.png"],
                       [UIImage imageNamed:@"2.png"],
                       [UIImage imageNamed:@"1.png"], Nil];
        treImage.animationImages = fagelBilder;
        treImage.animationDuration = 10;
        treImage.animationRepeatCount = 1;
    }

    {
        [super viewDidLoad];
        NSArray *flagbilder = [NSArray array];
        flagbilder = [[NSArray alloc] initWithObjects:
                       [UIImage imageNamed:@"F1.png"],
                       [UIImage imageNamed:@"f2.png"],
                       [UIImage imageNamed:@"f3.png"],
                       [UIImage imageNamed:@"f4.png"],
                       [UIImage imageNamed:@"f5.png"],
                       [UIImage imageNamed:@"f6.png"],
                       [UIImage imageNamed:@"f7.png"],
                       [UIImage imageNamed:@"f8.png"],
                       [UIImage imageNamed:@"f9.png"],
                       [UIImage imageNamed:@"f10.png"],
                       [UIImage imageNamed:@"f11.png"],
                       [UIImage imageNamed:@"f12.png"],
                       [UIImage imageNamed:@"f13.png"],
                       [UIImage imageNamed:@"f14.png"],
                       [UIImage imageNamed:@"f15.png"],
                       [UIImage imageNamed:@"f16.png"],
                       [UIImage imageNamed:@"f17.png"],
                       [UIImage imageNamed:@"f18.png"],
                       [UIImage imageNamed:@"f19.png"], 
                       [UIImage imageNamed:@"f20.png"],
                       [UIImage imageNamed:@"f21.png"],
                       [UIImage imageNamed:@"f20.png"],
                       [UIImage imageNamed:@"f22.png"],
                       [UIImage imageNamed:@"f20.png"],
                       [UIImage imageNamed:@"f23.png"],
                       [UIImage imageNamed:@"f20.png"],
                       [UIImage imageNamed:@"f22.png"],
                       [UIImage imageNamed:@"f20.png"],
                       [UIImage imageNamed:@"f23.png"],
                       [UIImage imageNamed:@"f20.png"],
                       [UIImage imageNamed:@"f22.png"],
                       [UIImage imageNamed:@"f20.png"],
                       [UIImage imageNamed:@"f23.png"],
                       [UIImage imageNamed:@"f20.png"],
                       [UIImage imageNamed:@"f24.png"],
                       [UIImage imageNamed:@"f25.png"],
                       [UIImage imageNamed:@"f26.png"],
                       [UIImage imageNamed:@"f27.png"],
                       [UIImage imageNamed:@"f28.png"],
                       [UIImage imageNamed:@"f29.png"],
                       [UIImage imageNamed:@"f30.png"],
                       [UIImage imageNamed:@"f31.png"],
                       [UIImage imageNamed:@"f32.png"],
                       [UIImage imageNamed:@"f33.png"],
                       [UIImage imageNamed:@"f34.png"],
                       [UIImage imageNamed:@"f35.png"],
                       [UIImage imageNamed:@"f36.png"],
                       [UIImage imageNamed:@"f37.png"],
                       [UIImage imageNamed:@"f38.png"], Nil];
        flagImage.animationImages = flagbilder;
        flagImage.animationDuration = 15;
        flagImage.animationRepeatCount = 1;
    }


}

- (void)viewDidUnload {
    [super viewDidUnload];
    // Release any retained subviews of the main view.
    // e.g. self.myOutlet = nil; }

-(BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
    return (interfaceOrientation == UIInterfaceOrientationLandscapeLeft); }

@end
4

2 に答える 2

0

メモリの警告が表示された場合、おそらくアプリはクラッシュしていませんが、過度のメモリ使用のために強制終了されています。

クラスのどこかでメモリリークが発生したり、そのデバイスに要求が多すぎたりする可能性があります。

あなたのクラスは非常に長いので、リークを探して掘り下げることはできません。しかし、Xcode には、コードの問題を自動的に分析する機能があります。

メニューから選択するだけです: Product -> Analyze .

考えられる問題のリストが表示されます。リリースされていないオブジェクトがないか、すべてチェックしてください。

于 2012-04-27T12:39:57.123 に答える
0

記憶に問題があります。シミュレーターには、iPhone や iPad よりもはるかに多くのコンピューターの完全なメモリ リソースがあります。

一度に読み込もうとしている画像が多すぎるようです。使用するイメージを小さくするか、画像を少なくするか、アニメーション方法をよりオンデマンドのタイプに変更する必要がある場合があります。

また、よりマイナーなポイント。あなたが持っているような反復的なコードについては、「for」ステートメントと「stringWithFormat」を使用してください。それは数行にそれをノックダウンします。

于 2012-04-27T12:49:06.037 に答える