Rumah > Soal Jawab > teks badan
Saya ada soalan untuk newbie
NSMutableArray *_dataArray;
_dataArray=@[
@[@"Image_f",@"aaaaaa"],
@[@"Image_h",@"bbbbbb"],
@[@"Image_r",@"cccccc"],
@[@"Image_s",@"dddddd"],
@[@"Image_r",@"eeeeee"]];
Kemudian saya mahu menggantikan elemen dengan indeks 1
NSArray *rpArr = [NSArray arrayWithObjects:@"ggggg_hhhh",@"替换的元素内容", nil];
[_dataArray replaceObjectAtIndex:1 withObject:rpArr];
Apabila saya menggunakan kaedah ini untuk menggantikan (ubah suai) elemen 1, saya sentiasa mendapat ralat. Bagaimana saya boleh membetulkannya?
迷茫2017-05-02 09:32:09
@[]
hanya boleh menjana tatasusunan tidak berubah, iaitu NSArray
dan replaceObjectAtIndex
ialah kaedah yang hanya tersedia untuk NSMutableArray
.
Panggil sahaja @[...]
selepas mutableCopy
anda.
NSMutableArray *_dataArray = @[...].mutableCopy;
[_dataArray replaceObjectAtIndex:1 withObject:@[...]];
高洛峰2017-05-02 09:32:09
Titik pengetahuan Tukar NSArray kepada NSMutableArray Jika _dataArray anda ialah NSMutableArray, anda harus membuka ruang terlebih dahulu. Anda hanya boleh mengisytiharkannya sebagai NSArray dan kemudian menukarnya kepada
NSArray* _dataInitArray = @[
@[@"Image_f",@"aaaaa"],
@[@"Image_h",@"bbbbbb"],
@[@"Image_r",@"cccccc"],
@[@"Image_s",@"dddddd"],
@[@"Image_r",@"eeeeee"]
];
NSMutableArray * _dataArray = [_dataInitArray mutableCopy];
NSArray *rpArr = [NSArray arrayWithObjects:@"ggggg_hhhh",@"替换的元素内容", nil];
[_dataArray replaceObjectAtIndex:1 withObject:rpArr];
for(int i = 0 ; i < 5; i++){
NSLog(@"%@",_dataArray[i][1]);
}
2016-09-17 21:53:55.159 Ujian[3124:369229] aaaaa
2016-09-17 21:53:55.160 Ujian[3124:369229] Menggantikan kandungan elemen
2<🎜 21:53:55.160 Ujian[3124:369229] cccccc
2016-09-17 21:53:55.160 Ujian[3124:369229] dddddd
2016-09-17:53:160 ]eeeeee
Program berakhir dengan kod keluar: 0