MACOSX - при вызове -finishSyncing для ISyncSessionDriver приложение делает повторные вызовы делегату - PullRequest
5 голосов
/ 01 июня 2011

Я использую службы синхронизации в своем приложении.Я использую обычный способ получения контактов из адресной книги (используя службы синхронизации).

Я хочу преждевременно завершить сеанс синхронизации, если пользователь решит это сделать, поэтому, когда пользователь нажимает кнопкуПри нажатии кнопки «Отмена» я вызываю [driver finishSyncing]

. К ISyncSessionDriver прикреплен делегат, который имеет дело с методами делегата, типичными для сеанса синхронизации.Одним из таких методов является - (BOOL)sessionDriver:(ISyncSessionDriver *)sender willFinishSessionAndReturnError:(NSError **)outError

Проблема в том, что при вызове finishSyncing, sessionDriver:willFinishSessionAndReturnError: вызывается многократно, не один раз, а сотни раз.В конце концов он выдаст ошибку.

Итак, как я могу это исправить, или как лучше отладить, чтобы выяснить, в чем проблема?

Спасибо

1 Ответ

3 голосов
/ 12 июня 2011

Используйте вместо - (void) cancelSyncing .

Убедитесь, что вскоре после этого отпустите приемник, поскольку вы не можете продолжать использовать отмененный сеанс.

...