Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
iOS:将AVAudioPlayer实例从一个变量移动到另一个变量_Ios_Objective C_Avaudioplayer - Fatal编程技术网

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];