2011-06-30 29 views
1

リリースステートメントが削除されました。それらのうちのいくつかは大丈夫と思われましたが、それはおそらく他のものが最初に爆発したためです。 another questionリリースされたオブジェクトにメッセージが送信されました(手動ではリリースされません)


- (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アラートに関するエラーと詳細を削除しました。 **


まあ私は愚かな気がしません。それはすべてのメモリ管理でした。
一時的な解決策でも何も漏れないように努力しましたが、私はこれを行いました...

+0

ゾンビでプロファイリングしてみましたか? – Richard

答えて

2

私が提供するコードでは、retain、alloc/init、またはいくつかのバリエーションコピー。つまり、そのメソッドで解放するコールがあってはならず、クラッシュの原因になります。あなたが他の方法で公開していることを確認して、basics of memory managementを覚えておいてください。

+0

私は通常 'new'を呼び出して何かを割り当てますが、今回はしませんでした。簡単な混乱。 //ありがとう。 – Thromordyn

0

あなたはタイトルとアートワークをリリースしていますが、あなたのものではありません。これにより、間もなく、割り当て解除されたオブジェクト(アイテムのdeallocまたは他の場所から)を解放する予定に、すぐにまたは後で進みます。

+0

同じことがアートワークにも当てはまります。 –

0

// [アートワークのリリース];

// [タイトルリリース];

これらは自動リリースされたオブジェクトなのでコメントしてください

関連する問題