MACOSX - 在ISyncSessionDriver上调用-finishSyncing时,应用程序会重复调用该委托

时间:2011-06-01 09:25:24

标签: macos delegates syncservices

我在我的应用程序中使用Sync Services。我正在使用通常的方式从地址簿中获取联系人(使用同步服务)。

如果用户决定这样做,我想提前结束同步会话,因此,当用户按下“取消”按钮时,我打电话给[driver finishSyncing]

附加到ISyncSessionDriver的是一个代理,它处理典型的同步会话的委托方法。其中一种方法是- (BOOL)sessionDriver:(ISyncSessionDriver *)sender willFinishSessionAndReturnError:(NSError **)outError

问题在于,在调用finishSyncing时,sessionDriver:willFinishSessionAndReturnError:会被重复调用,而不仅仅是一次,而是多次调用。最终会抛出错误。

那么,我怎么能解决这个问题,或者我可以做些什么更好的调试来弄清问题是什么?

由于

1 个答案:

答案 0 :(得分:3)

改为使用- (void)cancelSyncing

请务必尽快释放接收器,因为您无法继续使用已取消的会话。