Вы можете начать с извлечения людей из книги только один раз для всего цикла, а не дважды за итерацию, и еще больше улучшить это, зацикливаясь непосредственно на массиве с помощью быстрого перечисления вместо доступа к объектам по индексу:
NSArray *people = [book people];
for (ABPerson *person in people)
[book removeRecord:person];
[book save];
Вы также должны профилировать свое приложение в Инструментах, чтобы увидеть, что еще может занимать значительную часть вашего времени.Я предсказываю - но вы должны это подтвердить сами - что если вы профилируете свой текущий код, [book people]
будет отображаться как горячая точка, потому что вы так часто его называете (2000 раз, когда count == 1000
).
(Я предполагаю, что у вас есть веская причина для очистки адресной книги ...)