我在我的應用程序中偶然發現了一個問題,我的音樂播放器視圖控制器需要保留委託(這是一個基於雲的存儲與歌曲)以保留歌曲播放列表,直到選擇新文件夾中的歌曲。可以保留委託嗎?
因此,當用戶點擊某個文件夾中的歌曲時,我將該委託人分配給該ViewController,因此即使將該委託人從視圖中按下,它仍留在內存中,以便音樂播放器可以播放下一首和上一首歌曲。但是,當用戶從另一個文件夾(ViewController)中選擇歌曲時,我將音樂播放器委託設置爲零,並將該委託分配給該新的ViewController。
該解決方案是否可以接受?
代碼:
MusicPlayerViewController有:
@property (nonatomic, strong) id <MusicPlayerViewDelegate> delegate;
視圖控制器中的歌曲會從雲存儲文件夾中加載了此呼籲細胞(歌曲)螺紋時:
musicPlayerViewController.delegate = nil;
musicPlayerViewController.delegate = self;
感謝您的建議,停留在內存中的ViewController是一個DropboxViewController,它從Dropbox存儲中提取數據,併爲播放器創建流式鏈接,這就是爲什麼我很難創建一些智能MVC模式,您有一些想法也許? – vburojevic
如果他們設計他們的視圖控制器來管理自己的網絡流量,這是不幸的。修復它可能沒有太多。他們應該有一個獨立於視圖控制器的'DropboxController'。 –