我的动画在设备上崩溃,但在模拟器中没有

时间:2012-04-26 19:22:35

标签: objective-c xcode ipad animation

嗨,我是一个试图整理iPad应用程序的菜鸟。所有都在模拟器上顺利运行,但在设备上没有。我有五个视图控制器,它是第五个特别是在运行怪物动画时崩溃。

我在这个视图控制器中发布代码。请不要笑。

它还说它收到了内存警告。那是什么?

谢谢任何人。

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

2 个答案:

答案 0 :(得分:0)

如果您收到内存警告,可能是应用程序没有崩溃,但因内存使用过多而被杀死。

您可能会在班级某处发生内存泄漏,或者只是对该设备要求太多。

你的课很长,所以我无法深入研究它的泄漏。但在Xcode中,有一个功能可以自动分析代码中的问题。

只需从菜单中选择:产品 - >的分析

您将收到可能出现问题的列表,只需检查每个未发布的对象。

答案 1 :(得分:0)

你有记忆问题。模拟器拥有计算机的全部内存资源,远远超过任何iPhone或iPad。

看起来你正试图一次加载太多图像。您可能需要使用较小的inage或更少的图像或将动画方法更改为更按需的类型。

还有一个小问题。对于像你这样的重复代码,使用“for”语句和“stringWithFormat”。它会把它打成几行。