这是我关于stackoverflow的第一个问题。我正在开发一个 iOS 应用程序,该应用程序使用来自网络上的 MySQL 服务器的数据。我创建了一个名为“DataController”的类,它完全管理同步过程并使用带有委托的 NSURLConnection 来检索信息、解析它并将其存储在 CoreData 模型中。它在这个过程中使用了几种方法,如下所示:
[self.dataControllerObject 同步学生]
调用syncStudents
--> 从服务器获取下载列表
--> 存储必须在 NSArray-property 中下载的所有元素的 ID
--> 调用syncNextStudent调用syncNextStudent
--> 从 NSArray-property 获取第一个元素
--> 建立 NSURLConnection 以检索数据调用connectionDidFinishLoading
--> 数据存储在 CoreData
--> 从 NSArray-property 中删除 ID
--> 调用syncNextStudentsyncNextStudent最终没有剩余数组元素并完成该过程。
我希望我明确了功能。现在这是我的问题:
如何中止整个过程,例如当用户现在不想同步并点击某个按钮时?
我尝试创建 DataController 对象并使用 [self performSelectorInBackground:@selector(startSyncing) withObject:nil] 在另一个线程中调用 syncStudents 方法,但现在我的 NSURLConnection 不会触发任何委托方法。
我能做些什么?
提前致谢。