Вложено для каждой петли в 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];
}
Это будет работать только в том случае, если количество элементов в массиве всегда одинаково - если иногда они не совпадают, вам нужна модификация, чтобы предотвратить ошибку "за пределами допустимого", иначе она вылетит!