Как мне инициализировать NSArray только размером, чтобы использовать цикл for для его заполнения позже? Мой цикл for будет
for (int i = 0; i < [myArray count]; i++) {
myArray[i] = someData;
}
Как мне инициализировать NSArray только размером, чтобы использовать цикл for для его заполнения позже? Мой цикл for будет
for (int i = 0; i < [myArray count]; i++) {
myArray[i] = someData;
}
Вам не нужно инициализировать его с определенным размером — вы можете добавить объекты позже:
NSMutableArray *myArray = [NSMutableArray array];
for (int i = 0; i < 100; i++) {
[myArray addObject:someData];
}
Есть небольшой прирост производительности, если вы заранее знаете размер:
NSMutableArray *myArray = [NSMutableArray arrayWithCapacity:100];
Но это необязательно.
NSNull
— это класс, используемый для представления неустановленного, недопустимого или несуществующего объекта. Поэтому вы можете дополнить массив до определенного размера, используя экземпляры этого класса.
NSUInteger sizeOfArray = 10;
NSMutableArray *someArray = [NSMutableArray array];
for (NSUInteger i = 0; i < sizeOfArray; i++) {
[someArray addObject:[NSNull null]];
}
Кроме того, вы не можете использовать синтаксис someArray[i] = xyz;
, если значение в позиции i
не существует, так как это вызовет ошибку выхода за пределы.
array[i] = obj
, не добавляя что-то перед ним с помощью addObject
?
- person Lord Zsolt; 08.09.2015
NSMutableArray
в свой собственный класс или подкласс, если хотите. - person Aaron Brager   schedule 09.12.2014NSMutableArray
- person Eric Amorde   schedule 09.12.2014