删除了发布声明。其中一些似乎没问题,但这可能只是因为其他事情首先爆发了。
- (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*/
}
在another question中,我提到了有关艺术作品的SQLite错误。
**删除了有关NSZombieEnabled调用已发布对象警报的错误和详细信息。 **
唔,我不觉得愚蠢。这是所有内存管理 我努力不泄漏任何东西,即使是在临时解决方案中,但我这样做了......
答案 0 :(得分:2)
在您提供的代码中,我没有看到任何对retain,alloc / init或某些副本的调用的调用。这意味着您不应该在该方法中发布任何调用,这将导致崩溃。确保您没有在其他方法中过度发布并记住basics of memory management。
答案 1 :(得分:0)
你正在发行标题和艺术品,但它们不是你的。这将很快或稍后导致暂时释放已经解除分配的对象(来自项目的dealloc或其他地方)。
答案 2 :(得分:0)
// [艺术品发布];
// [title release];
评论那些因为那些是自动释放的对象