Objective c 我的动画会在设备上崩溃,但不会在模拟器中崩溃
嗨,我是一个试图组装iPad应用程序的noob。在模拟器上运行平稳,但在设备上运行不平稳。我有五个视图控制器,这是第五个,尤其是在运行怪物动画时 我在这里发布的代码从该视图控制器。请不要笑 它还说它收到了内存警告。怎么了 谢谢大家Objective c 我的动画会在设备上崩溃,但不会在模拟器中崩溃,objective-c,xcode,ipad,animation,Objective C,Xcode,Ipad,Animation,嗨,我是一个试图组装iPad应用程序的noob。在模拟器上运行平稳,但在设备上运行不平稳。我有五个视图控制器,这是第五个,尤其是在运行怪物动画时 我在这里发布的代码从该视图控制器。请不要笑 它还说它收到了内存警告。怎么了 谢谢大家 import "FifthViewController.h" #import "ViewController.h" @interface FifthViewController () @end @implementation FifthViewControl
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
如果您收到内存警告,可能应用程序没有崩溃,而是因为内存使用过度而被杀死 你可以在你的课堂上的某个地方有内存泄漏,或者只是对那个设备要求太高 你的课很长,所以我无法深入探究,寻找漏洞。但是在Xcode中有一个功能可以自动分析代码中的问题 只需从菜单中选择:产品->分析
您将收到可能出现的问题列表,只需检查每个问题是否存在未发布的对象。您有内存问题。模拟器拥有计算机的全部内存资源,远远超过任何iPhone或iPad 看起来您试图一次加载太多的图像。您可能需要使用更小的图像或更少的图像,或者将动画方法更改为更为随需应变的类型
还有一个更次要的问题。对于像您这样重复的代码,请使用“For”语句和“stringWithFormat”。这会把它减少到几行 好的,谢谢你,马克托。当我分析项目时,我在AppDelegate.m中得到两个警告。此处:-(BOOL)应用程序:(UIApplication*)应用程序didFinishLaunchWithOptions:(NSDictionary*)launchOptions{self.window=[[UIWindow alloc]initWithFrame:[[UIScreen mainScreen]bounds]];self.viewController=[[viewController alloc]initWithNibName:@“viewController”bundle:nil];self.window.rootViewController=self.viewController;[self.window makeKeyAndVisible];返回YES;}切换视图时似乎有问题。你知道我怎么解决吗?再次感谢。我看没有什么不对劲。你能告诉我你收到的电话和警告吗?