Вложено для каждой петли в Objective-C

У меня есть два массива выборки с веб-серверов, оба содержат только одинаковое количество словарей. Я хочу разобрать каждый словарь в два вложенных для каждого цикла, поэтому используется следующий код:

for (NSDictionary *subscription in feedsArray)
{
    for (NSDictionary *unreadCount in unreadCountsArray)
    {
        [RDInsertObjects insertFeedsWithSubscription:subscription
                         unreadCount:unreadCount];
    }
}

Но возвращаемые результаты мне не нужны, внутренний цикл for казался выполненным много раз, кто-нибудь может сказать мне, как именно сделать правильные вещи, чтобы этот код имел смысл?

1 ответ

Решение

Как вы это делаете, для каждой отдельной итерации первого цикла второй цикл повторяется полностью.

Я думаю, что это не будет работать с циклом for-in. Но вы сказали, что количество элементов в двух массивах одинаково - так что вы можете легко сделать:

for (i=0; i< feedsArray.count; i++) {
  NSDictionary subscription = feedsArray[i];
  NSDictionary unreadCount = unreadCountsArray[i];

  [RDInsertObjects insertFeedsWithSubscription: subscription unreadCount: unreadCount];
}

Это будет работать только в том случае, если количество элементов в массиве всегда одинаково - если иногда они не совпадают, вам нужна модификация, чтобы предотвратить ошибку "за пределами допустимого", иначе она вылетит!

Другие вопросы по тегам