Я создаю приложение для Iphone / Itouch, но продолжаю сталкиваться с несколькими серьезными утечками, которые просто приводят к сбою приложения.В моей игре, когда я нажимаю кнопку воспроизведения (с главного экрана), она переходит на другую страницу, на которой есть игра.Но сразу после его появления в консоли появляется предупреждение: уровень памяти = 1.Что может случиться?Вот мой метод ViewDidLoad:
-(void)viewDidLoad {
[super viewDidLoad];
array = [[NSMutableArray alloc] initWithCapacity:100];
bulletArray = [[NSMutableArray alloc] initWithCapacity:100];
pos = CGPointMake(0.0,-5.0);
NSString *path = [[NSBundle mainBundle] pathForResource:@"GloriousMorning" ofType:@"mp3"];
AVAudioPlayer *theAudio=[[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath:path] error:NULL];
//float effects_Volume = [[NSUserDefaults standardUserDefaults] floatForKey:@"effectsVolume"];
//theAudio.volume = effects_Volume;
[theAudio play];
}
А также, второй вопрос, так как моя игра - стрелялка, пользователь нажимает кнопку под названием «Огонь».Но каждый раз, когда я тестирую свое приложение на устройстве, оно падает, когда я нажимаю кнопку огня.Вот мой код для кнопки огня.
-(IBAction)Fire {
NSString *path = [[NSBundle mainBundle] pathForResource:@"gunShot" ofType:@"mp3"];
AVAudioPlayer *theAudio=[[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath:path] error:NULL];
//float effects_Volume = [[NSUserDefaults standardUserDefaults] floatForKey:@"effectsVolume"];
//theAudio.volume = effects_Volume;
[theAudio play];
//IBOutlet UIImageView *newBullet = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"Bullet.png"]];
UIImageView *newBullet = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"Bullet.png"]];
newBullet.frame = CGRectMake(0, 0, 10.0, 10.0);
newBullet.center = CGPointMake(239.0, 236.0);
[bulletArray addObject:newBullet];
[self.view addSubview:newBullet];
}
Сначала я создаю звук.Затем я помещаю пулю в том месте, где в данный момент находится пистолет, и добавляю его в массив, чтобы каждые 0,01 секунды в другом бите кода я мог бегать по массиву и проверять каждую пулю на предмет обнаружения столкновения.
Пожалуйста, скажите мне, что я делаю не так.Спасибо !!!
Ошибка, когда я нажимаю кнопку «Огонь», вызывающую сбой приложения, такова:
GDB: средства форматирования данных временно недоступны, будут повторяться после «продолжения» (неизвестная ошибка загрузкиразделяемая библиотека "
А также я думаю, что я делаю огромную утечку, когда пытаюсь воспроизвести аудио, по крайней мере, это то, что кто-то сказал мне. (Если это так, пожалуйста, скажите мне, как это исправить)