Разбить массив словарей на n массив словарей в objective c

#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; 
 

и повторите попытку … Может быть полезным…