сообщение отправлено освобожденному объекту (никогда не выпускается вручную) - PullRequest
1 голос
/ 30 июня 2011

Удалены заявления о выпуске.Некоторые из них, казалось, были в порядке, но это было, вероятно, только потому, что сначала взорвались другие вещи.


- (void)handleNowPlayingItemChanged:(id)notification {
    MPMediaItem *item = self.musicPlayer.nowPlayingItem;
    NSString *title = [item valueForProperty:MPMediaItemPropertyTitle];

    NSNumber *duration = [item
                         valueForProperty:MPMediaItemPropertyPlaybackDuration];
    float totalTime = [duration floatValue];
    progressSlider.maximumValue = totalTime;

    CGSize artworkImageViewSize = self.albumCover.bounds.size;
    MPMediaItemArtwork *artwork = [item valueForProperty:
                                                   MPMediaItemPropertyArtwork];
    if (artwork) {
        self.albumCover.image = [artwork imageWithSize:artworkImageViewSize];
    } else {
        self.albumCover.image = nil;
    }

    titleLabel.text = title;

    /*OpenEars stuff*/
}

В другой вопрос Я упоминаю ошибки SQLite, касающиеся художественных работ.

** Удалена ошибка и сведения, касающиеся NSZombieEnabled, оповещение о вызове освобожденным объектам.**


Ну разве я не чувствую себя глупо.Все это было управление памятью.
Я приложил усилия, чтобы ничего не пропустить, даже во временном решении, и все же я сделал это ...

Ответы [ 3 ]

2 голосов
/ 30 июня 2011

В предоставленном вами коде я не вижу никаких вызовов для сохранения, alloc / init или какого-либо изменения копии.Это означает, что у вас не должно быть никаких вызовов для освобождения в этом методе, и это будет причиной вашего сбоя.Убедитесь, что вы не слишком много выпускаете другими методами, и помните основы управления памятью .

0 голосов
/ 30 июня 2011

// [выпуск художественного произведения];

// [название выпуска];

комментируйте их, поскольку они являются автоматически выпущенными объектами

0 голосов
/ 30 июня 2011

Вы выпускаете название и обложку, но они не ваши. Это рано или поздно приведет к предварительному освобождению уже освобожденного объекта (из освобождения объекта или где-то еще).

...