Objective c 如何通过手动分配索引将数据添加到NSMutableArray中?

Objective c 如何通过手动分配索引将数据添加到NSMutableArray中?,objective-c,cocoa,nsmutablearray,Objective C,Cocoa,Nsmutablearray,有没有办法用NSMutableArray手动控制要将数据添加到哪个索引中?例如,在PHP中,我们可以执行以下操作: $foo[2] = "fafa"; $foo[8] = "haha"; 是否可以在NSMutableArray上手动分配索引?否这是不可能的。我建议改用NSMutableDictionary。您可以使用nsnumber作为索引 - (void)insertObject:(id)anObject atIndex:(NSUInteger)index 重要如果索引大于数组中的元素数,

有没有办法用
NSMutableArray
手动控制要将数据添加到哪个索引中?例如,在PHP中,我们可以执行以下操作:

$foo[2] = "fafa";
$foo[8] = "haha";

是否可以在
NSMutableArray
上手动分配索引?

否这是不可能的。我建议改用NSMutableDictionary。您可以使用nsnumber作为索引

- (void)insertObject:(id)anObject atIndex:(NSUInteger)index

重要如果索引大于数组中的元素数,则引发nsrange异常。

NSMutableArray
s不是稀疏的,它们不能在没有存储对象的地方有间隙。可以使用
insertObject:atIndex:
(如Edu所述)在从0到长度-1的任何索引处插入对象,但除此之外,只能附加对象(使用
addObject:

如果需要将对象与任意整数相关联,可以使用--the allows integer键,或者简单地使用
NSMutableDictionary
,使用
NSNumber
键(如drewag建议的)


另请参见:

,因为我并不完全清楚TeamStar是否需要稀疏阵列,我只想提到,您可以使用
-replaceObjectAtIndex:withObject:
和其他
-replace…
方法将对象分配给
NSMutableArray
中的特定索引。如果
index
大于该数字,则
会引发
NSRangeException
数组中元素的数目。可以使用for循环并用零填充数组。但是我认为我不是个好主意,那么,你试过NSMutableDictionary吗?但这不是使它成为一个函数吗?我可以用吗<代码>@property(非原子,复制)NSMutableArray*rangenans后跟:
[Rangeans insertObject:label1.text-atIndex:0]原因是因为我使用的单选按钮应该更新数组行[],而不是向数组中添加更多数据,以防用户决定更改选项。。。