我希望不需要在這裏使用NSMutableArray。我有一個包含10個元素的數組。我想改變索引4的值。有沒有辦法做到這一點,而不必使用NSMutableArray? NSMutableArray的問題是我們可以改變它的任何內容,包括它的大小。我不希望這個數組的大小發生意外更改。我只想將索引4中的值從22改爲25.我該怎麼做?做array[4]=25
不起作用。在NSArray的特定索引更新值
2
A
回答
8
NSArray *ar1 = @[@"1",@"2"];
NSMutableArray *ar1update = [ar1 mutableCopy];
ar1update[1] = @"Changed";
ar1 = [NSArray arrayWithArray:ar1update];
0
唯一的方法是創建一個新的NSArray並將您的指針更改爲新的NSArray。我可以舉個例子...
在接口:
@property (strong, nonatomic) NSArray *myArray;
在實施:
- (void) updateMyArray{
NSMutableArray *myArrayMut = [self.myArray mutableCopy];
myArrayMut[4] = @"new item";
self.myArray = [myArrayMut copy];
}
因此,基本上,你可以暫時創建一個可變的副本,讓你需要的變化,然後製作一個不可變的副本。一旦擁有不可變的副本,您可以將myArray指向新副本。只要您只更改updateMyArray
中的現有項目,並且myArray從10個或更少的項目開始,則永遠不會有超過10個項目。
0
如果你不想使用NSMutableArray
那麼一個普通的舊C數組呢?例如:
int array[10];
...
array[4] = 25;
您可以將Objective-C對象存儲在這樣的數組中,ARC將處理內存管理。
如果你真的想要一個固定大小的NSArray
/NSMutableArray
你可以做,通過繼承這些類型的自己 - 繼承NSArray
只需要實現兩個方法,你可以使用底層C數組或NSMutableArray
的實際存儲。
HTH
相關問題
- 1. NSArray找到值的索引
- 2. 更新文件(在特定的索引更新數組屬性)
- 3. 字典數組/如何更新特定鍵和索引的值?
- 4. 搜索列表和更新在該特定索引
- 5. NSArray返回特定值
- 6. 查找NSArray/NSMutableArray更改的索引
- 7. 更新一個特定的數組索引在蒙戈
- 8. 在特定值上生成索引
- 9. 如何從nsarray的nsarray中搜索特定的聯繫人
- 10. python中的特定行的索引值
- 11. 如何從NSArray訪問索引值
- 12. 的iOS NSArray的索引
- 13. 查找特定值的列索引
- 14. 獲取特定索引的不同值
- 15. 笨更新特定值
- 16. 更新一個或多個特定產品的Magento索引
- 17. 如何更新jQuery中每個函數的特定索引?
- 18. 如何更新Elasticsearch索引中的特定字段?
- 19. 上更新的唯一索引值
- 20. 字符串更改特定的索引值相同蟒蛇
- 21. jQuery如何更改特定索引列中文本框的值?
- 22. IOS目標C - 從另一個更新的NSArray值的NSArray
- 23. 在特定索引處搜索數組的值... Pt。 2糾錯
- 24. 如何在特定索引
- 25. 在Ruby中更新特定值
- 26. NSArray的平均值和商店價值在一個新的NSArray
- 27. 如何在android中更新值更新的特定行
- 28. 索引未知時更新特定數組條目
- 29. 通過特定索引更新數組對象
- 30. 如何檢索和更新Firebase中的特定值
您不能更改不可變數組。所以是的,至少暫時需要一個可變數組。 – rmaddy
當然,如果對象本身是可變的,你可以改變從數組中尋址的**對象**的值。 –