3

有什么方法可以手动控制我们要将数据添加到哪个索引NSMutableArray?例如,在 PHP 中,我们可以这样做:

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

可以手动分配索引NSMutableArray吗?

4

4 回答 4

4

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

如果您需要将对象与任意整数相关联,您可以使用NSMapTable--功能接口允许整数键,或者简单地使用NSMutableDictionary带有NSNumber键的 , (如 drawag 建议的那样)。

参见:如何在 Cocoa 中做稀疏数组

于 2012-04-28T19:02:08.473 回答
2

不,那是不可能的。我建议改用 NSMutableDictionary。您可以使用 NSNumbers 作为索引。

于 2012-04-28T18:48:49.460 回答
2
于 2012-04-29T00:21:59.413 回答
1
- (void)insertObject:(id)anObject atIndex:(NSUInteger)index

重要如果 index 大于数组中的元素数,则引发 NSRangeException。

于 2012-04-28T18:50:56.487 回答