Как избежать нехватки памяти при выполнении задачи для каждого элемента основных данных?

Я пытаюсь выполнить задачу, подобную этой:

NSFetchRequest *request = [NSFetchRequest fetchRequestWithEntityName:@"Entry"];

        NSPredicate *predicate = [NSPredicate predicateWithFormat:@"(version == %@)", @"1.0"];

        [request setPredicate:predicate];

        NSArray *results = [[AppDelegate applicationDelegate].managedObjectContext executeFetchRequest:request error:nil];

int i = 0;

        while (i < results.count) {

            Entry *entry = [results objectAtIndex:i];

            entry.version = @"1.1";

            i++;
        }

Но он исчерпал память, прежде чем он прошел через каждый результат.

Мне известно об этом:

[request setFetchBatchSize:20];

Но мне интересно, как это будет работать с тем, что у меня есть? Остановит ли он обработку после 20 результатов, или он просто захватит первые 20 результатов, а затем каким-то образом захватит следующие 20 и продолжит?

По сути, я спрашиваю, как мне получить только определенный объем данных, чтобы остановить его нехватку памяти, а затем получить другой пакет?

Ответы на вопрос(2)

Ваш ответ на вопрос