iOS:将AVAudioPlayer实例从一个变量移动到另一个变量
下面是我想要做的:我有一个名为iOS:将AVAudioPlayer实例从一个变量移动到另一个变量,ios,objective-c,avaudioplayer,Ios,Objective C,Avaudioplayer,下面是我想要做的:我有一个名为primaryPlayer的AVAudioPlayer播放一首曲目,我希望它在我将播放器转移到secondaryPlayer时不间断地继续播放。然后,我将使用primaryPlayer创建一个新的AVAudioPlayer实例,与原始曲目一起播放 也许就这么简单: secondaryPlayer=primaryPlayer; primaryPlayer=[[AVAudioPlayer alloc] initWithContentsOfURL:songURL erro
primaryPlayer
的AVAudioPlayer播放一首曲目,我希望它在我将播放器转移到secondaryPlayer
时不间断地继续播放。然后,我将使用primaryPlayer
创建一个新的AVAudioPlayer实例,与原始曲目一起播放
也许就这么简单:
secondaryPlayer=primaryPlayer;
primaryPlayer=[[AVAudioPlayer alloc] initWithContentsOfURL:songURL error:nil];
*这两个变量是类的属性,因此缺少定义
我担心我可能遗漏了什么。例如,这段代码是否只是将这两个变量设置为指向同一个内存地址?那么在第二行代码之后,两个变量对应于同一个播放器
我认为这可能更像是一个客观的C(或者仅仅是C)问题,但感谢您的阅读和对这方面的任何“指点” 假设
primaryPlayer
player指向地址0x1234
处的有效AVAudioPlayer
实例,并且secondaryPlayer
具有任意值,并且两者都声明为strong
属性
secondaryPlayer=primaryPlayer;
现在,两个变量都指向同一个对象(位于地址0x1234
)
secondary
player仍然指向同一个对象,并且作为强引用,该对象仍然是活动的primaryPlayer
现在指向新创建的对象,因此现在您有两个不同的播放器对象。太好了,谢谢您的解释。如果使用命令&secondaryPlayer=&primaryPlayer,我所关心的行为(基本上,这两个变量最终将是相同的事情)会发生吗?只是想更好地理解这些指针!不,这不会编译,因为&secondaryPlayer
是不可分配的。
primaryPlayer=[[AVAudioPlayer alloc] initWithContentsOfURL:songURL error:nil];