#ios #objective-c #arrays #sorting #nsdictionary
#iOS #objective-c #массивы #сортировка #nsdictionary
Вопрос:
У меня есть массив, содержащий n словарей, и я хотел бы разделить его на n массивов из x элементов, содержащихся в массиве.
ввод : массив из n элементов вывод: массив из n массивов из x элементов
На данный момент я сделал это:
NSMutableArray *contacts = [[NSMutableArray alloc] init];
NSMutableArray *test = [[NSMutableArray alloc] init];
int counter = 0;
for (id contact in pfContacts)
{
counter ;
[test addObject:contact];
if (counter%80 == 0 || counter == [pfContacts count])
{
int index = counter/81;
[contacts insertObject:test atIndex:index];
[test removeAllObjects];
}
}
но я получаю массив пустых массивов
Комментарии:
1. и в чем именно ваша проблема?
2. Покажите, что вы пробовали, и объясните, что это делает неправильно.
3. Можете ли вы описать, с какой проблемой вы столкнулись?
4. смотрите мой код в разделе редактирования
5. Действительно непонятно использовать массивы словарей вместо объектов пользовательского класса. Попробуйте провести рефакторинг своего кода, это может упростить вашу проблему
Ответ №1:
У вас возникает проблема в этом
if (counter%80 == 0 || counter == [pfContacts count])
{
int index = counter/81;
[contacts insertObject:test atIndex:index];
[test removeAllObjects];
}
Потому что если счетчик равен 80, то условие if будет работать, но в этом условии вы используете это
int index = counter/81;
Это означает
int index = counter/81; amp;amp; 80/81 = 0.98
итак, он выдает ошибку..
Измените его следующим образом
int index = counter/80;
и повторите попытку … Может быть полезным…