Ios5 iOS>&燃气轮机;如何创建一个;占位符“;尚未Alloc/Init的对象的数组

Ios5 iOS>&燃气轮机;如何创建一个;占位符“;尚未Alloc/Init的对象的数组,ios5,memory-management,init,alloc,Ios5,Memory Management,Init,Alloc,在某个视图中,我有一堆AVAudioPlayer属性,每个属性都应该在某个用户操作上播放。播放选定的AVAudioPlayer时,如果播放了另一个AVAudioPlayer,则应停止播放 为了实现这一点,我创建了一个数组,其中包含所有AVAudioPlayer属性,在用户选择播放选定的AVAudioPlayer之前,我希望查看所有AVAudioPlayer并停止它们 问题是创建数组的合理位置是在开始处(比如在ViewDidLoad中),此时AVAudioPlayer属性没有一个经过alloc+i

在某个视图中,我有一堆AVAudioPlayer属性,每个属性都应该在某个用户操作上播放。播放选定的AVAudioPlayer时,如果播放了另一个AVAudioPlayer,则应停止播放

为了实现这一点,我创建了一个数组,其中包含所有AVAudioPlayer属性,在用户选择播放选定的AVAudioPlayer之前,我希望查看所有AVAudioPlayer并停止它们

问题是创建数组的合理位置是在开始处(比如在ViewDidLoad中),此时AVAudioPlayer属性没有一个经过alloc+init-因此如果我在调试器中查看数组,它会显示为空(对象数=0)。目前,我只在用户实际选择某个AVAudioPlayer时才执行alloc+init操作

我也可以在开始时为所有AvaudioLayers执行alloc+init,但这将占用不一定需要的资源


有没有办法在不占用所需资源的情况下创建此阵列?i、 e.使用“空”对象创建阵列,然后分配和启动它们

我也有类似的情况。我一直在做的是:

NSArray *myArray = [NSArray arrayWithObjects:@"",@"",@"",@""];
viewDidLoad
中(如果我的数组将有4个对象)。然后,由于我有可用的信息,我会:

[myArray replaceObjectAtIndex:myLocationToAddValue withObject:myObject];
我是在看一个非常古老的项目中的一些代码时产生这个想法的,这个项目是由我公司的其他人用完全不同的语言编写的。它似乎满足了我的需要,而且它还有一个额外的好处,我可以在数组中循环并检查

if ([[myArray objectAtIndex:i] length] == 0) 
查看我已在何处放置项目。我应该注意,我要添加的对象都是NSStrings——如果循环通过并发现一个对象被放入了数组中,而该数组不是字符串(或者,更一般地说,没有“长度”方法),我猜会发生一些不愉快的事情,但我还没有检查


我肯定会有更好的解决办法,但我会把它公布出来,因为目前还没有任何答案。我认为一个草率的答案似乎有效,总比没有好。

Hmm,过去它是有效的。。。我正在为多个阵列执行此操作。它们都以相同的方式声明,并且都以相同的方式用空字符串“填充”。我可以为其中一个数组执行
replaceObjectAtIndex
,并按照我的预期进行操作,但在另一种方法中,我尝试在不同的数组上执行
replaceObjectAtIndex
,结果出现“无法识别的选择器发送到实例”错误。我正在对此进行更多的研究——如果有人提出建议,我愿意接受(对于构建空数组的更好方法的建议将非常受欢迎=)——我越是考虑这个问题,我就越不喜欢它)。