1
我不是100%確定MPMusicPlayerController底下發生了什麼(源代碼會很好)。我不知道每次創建一個像我的委託方法handlePlayPauseTapped這樣的方法被調用時,我在應用上創建的負載有多沉重。我會假設,因爲你如何實例化它,即沒有alloc/init,它正在爲我做一些自動緩存;但是,API文檔對此沒有提及。一遍又一遍地實例化一個MPMusicPlayerController。好/壞的做法
我應該有一個全局變量,啓動一次,並重用它的應用程序的生活?或者,我可以爲自己節省一些代碼複雜性,只需創建一個我需要的代碼。就我而言,我需要一個來自衆多視圖的iPod控制器。
- (IBAction) handlePlayPauseTapped {
MPMusicPlayerController *iPodController = [MPMusicPlayerController iPodMusicPlayer];
if (iPodController.playbackState == MPMusicPlaybackStatePlaying) {
[iPodController pause];
} else {
[iPodController play];
}
}
想法在這裏的最佳做法?
是的,當我在樂器工具中運行它時,每次調用此函數時都沒有改變內存使用情況。由於iPod控制器是一種獨特的野獸,即它是系統上的共享應用程序,因此似乎沒有任何用於每個分配的額外內存。 – vesselhead
說到實例變量點。如果這不是一個特殊情況,並且這是一次又一次被添加到堆中的其他類型的對象。由於我的對象在多個視圖中被訪問,即多個類,您是否已經將這個應用程序委託的實例變量,然後從那裏分享? – vesselhead