我在我的应用程序中使用同步服务。我正在使用从通讯录中获取联系人的正常方式(使用同步服务)。
如果用户决定这样做,我想提前结束同步 session ,因此,当用户按下“取消”按钮时,我会调用 [driver finishSyncing]
附ISyncSessionDriver
是处理典型同步 session 的委托(delegate)方法的委托(delegate)。其中一种方法是- (BOOL)sessionDriver:(ISyncSessionDriver *)sender willFinishSessionAndReturnError:(NSError **)outError
问题是当调用 finishSyncing
, sessionDriver:willFinishSessionAndReturnError:
被反复调用,不仅仅是一次,而是数百次。最终它会抛出一个错误。
那么,我该如何解决这个问题,或者我可以做些什么更好的调试来找出问题所在?
谢谢
最佳答案
改用 - (void)cancelSyncing .
确保在不久之后释放接收器,因为您无法继续使用已取消的 session 。
关于MACOSX - 在 ISyncSessionDriver 上调用 -finishSyncing 时,应用程序会重复调用委托(delegate),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6198970/