2012-04-28 158 views

回答

2

只是因为它不是完全清楚,我认为TeamStar要稀疏数组,我就提到,您可以将NSMutableArray内将对象分配给特定的指标 - 只要阵列已经足够长 - 使用-replaceObjectAtIndex:withObject:和其他-replace…方法。

+0

井的原因是因为单选按钮我使用应该更新数组如果用户决定更改选项,row []不会将更多数据添加到数组中 – 2012-04-29 16:56:48

2

不,这是不可能的。我会建议使用一个NSMutableDictionary来代替。你可以使用NSNumbers作为索引。

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

重要发起一个NSRangeException如果指数比所述阵列中的元件的数量更大。

+1

如果index大于数组中元素的数量,则引发'NSRangeException'。 – Costique 2012-04-28 18:52:51

+0

您可以使用for循环并用零填充该数组。但我不认为我不是一个好主意,所以,你有没有试过NSMutableDictionary? – Edu 2012-04-28 18:55:44

+0

但它不是一个功能?我可以使用例如: '@属性(非原子,复制)的NSMutableArray * rangenans;' 后跟: '[rangenans insertObject:label1.text atIndex:0];' – 2012-04-28 20:00:15

4

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

如果你需要与对象任意整数关联,你可以使用一个NSMapTable - 在functional interface允许整数键,或简单地用一个NSMutableDictionary,与NSNumber键(如drewag建议)。

参见:How to do sparse array in Cocoa

相关问题