2011-06-30 112 views
1

删除发布语句。其中一些似乎没有问题,但这可能仅仅是因为其他事情首先爆炸。发送到发布对象的消息(从未手动发布)


- (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

您是否尝试过使用僵尸进行分析? – Richard

回答

2

在你提供我没有看到任何来电保留,分配/ init或一些变化的代码复制。这意味着你不应该有任何调用在该方法释放,这将是你的崩溃的原因。确保你没有用其他方法释放,并记住basics of memory management

+0

我通常会调用'new',然后分配一些东西,但我没有这个时间。简单的困惑。 // 谢谢。 – Thromordyn

0

你正在发布标题和艺术作品,但他们不是你的。这将导致暂时释放一个已经释放的对象(从项目的dealloc或其他地方)。

+0

艺术作品也是如此。 – 2011-06-30 17:41:58

0

// [作品发布];

// [title release];

评论这些,因为这些是自动释放对象

相关问题