我在我的应用程序中偶然发现了一个问题,我的音乐播放器视图控制器需要保留委托(这是一个基于云的存储与歌曲)以保留歌曲播放列表,直到选择新文件夹中的歌曲。可以保留委托吗?
因此,当用户点击某个文件夹中的歌曲时,我将该委托人分配给该ViewController,因此即使将该委托人从视图中按下,它仍留在内存中,以便音乐播放器可以播放下一首和上一首歌曲。但是,当用户从另一个文件夹(ViewController)中选择歌曲时,我将音乐播放器委托设置为零,并将该委托分配给该新的ViewController。
该解决方案是否可以接受?
代码:
MusicPlayerViewController有:
@property (nonatomic, strong) id <MusicPlayerViewDelegate> delegate;
视图控制器中的歌曲会从云存储文件夹中加载了此呼吁细胞(歌曲)螺纹时:
musicPlayerViewController.delegate = nil;
musicPlayerViewController.delegate = self;
感谢您的建议,停留在内存中的ViewController是一个DropboxViewController,它从Dropbox存储中提取数据,并为播放器创建流式链接,这就是为什么我很难创建一些智能MVC模式,您有一些想法也许? – vburojevic
如果他们设计他们的视图控制器来管理自己的网络流量,这是不幸的。修复它可能没有太多。他们应该有一个独立于视图控制器的'DropboxController'。 –