Итак, у меня есть эта проблема, мое приложение воспроизводит аудио, и оно сохраняло позицию воспроизведения всякий раз, когда приостанавливается, нажав кнопку или выбрав другую дорожку. Когда это происходит, я программно вызываю паузу и устанавливаю задержку в 0,5 сек., Прежде чем начинать воспроизведение следующей дорожки, вот где проблема.Основные данные, неисправность и NSZombieEnabled = EXC_BAD_ACCESS
Код мертв просто.
NSInteger x = [_player currentPlaybackTime];
if (x && x > 0) {
[_nowPlaying setValue:[NSNumber numberWithInt:x] forKey:@"pausedAt"];
NSError *ctxErr;
if (![_context save:&ctxErr]) {
NSLog(@"Save error: %@", [ctxErr localizedDescription]);
}
}
(_nowPlaying является NSManagedObject, если это помогает)
И он выходит из строя по линии [_nowPlaying setValue: forKey:]
Итак, я добавить NSZombieEnabled
к переменной окружения и журналы сообщают «Caught CoreData не мог предпродажную ошибка для «
Хорошо, поэтому я проверяю на [_nowPlaying isFault]
. Я понял, что, так как я также вызываю функцию каждые несколько секунд, это не критично, если она не сохраняет в этой конкретной точке. Он отлично работает с 0 сообщений от NSZombie.
Приходит проблема, когда я снял NSZombieEnabled, приложение отключается на [_nowPlaying isFault]
с EXC_BAD_ACCESS. Что, очевидно, означало, что у меня есть a plain old crash.
Теперь я полностью потерян. Любая идея, куда идти отсюда?
Update: отвечая на @ArkadiuszHolko комментарий
Думал, что это было очевидно, но вот это:
[[[SRAudioPlayer sharedAudioPlayer] player] pause];
[self performSelector:@selector(setPlayback) withObject:nil afterDelay:0.5f];
И setPlayback просто
NSManagedObject *episode = [_fetchedResultsController objectAtIndexPath:indexPath];
[[SRAudioPlayer sharedAudioPlayer] setNowPlaying:episode];
(Боковое примечание, не связанное с вашей проблемой: 'if (x && x> 0)' такое же, как 'if (x> 0)'.) –
Можете ли вы показать код, ответственный за «Я программно вызываю паузу: и установите задержку в 0,5 сек., прежде чем начинать воспроизведение следующей дорожки, в этом случае возникает проблема. –
@ArkadiuszHolko обновлен. И MartinR, да, я знаю, но в начале dev, я столкнулся с x, по какой-то причине, и это не сильно влияет на производительность. Поэтому я просто оставил его там. – soemarko