2012-04-28 161 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

相關問題