iOS中的递归委派 - 如何实施?

时间:2011-05-27 01:03:02

标签: ios delegates datasource

我的ViewController有一个DataController,它处理来自互联网的数据加载。我将DataController设置为我的ViewController的数据源,它工作正常。但是现在我想在数据加载时显示进度条,所以我想让ViewController成为DataController的委托,并在加载开始,继续和结束时收到通知。显然,这个递归委托会导致访问不良,而堆栈仍然显示我的程序集。我该如何实施这种情况?

2 个答案:

答案 0 :(得分:1)

我从来没有使用过你提到的这个精确的dataController模式,但我对这些行的常见实现是:

  1. 将NSArray或NSMutableArray声明为UIViewController子类的成员
  2. 创建一个使用ASIHTTP或NSURL从Web加载数据的类,并将该类设置为ASIHTTP或NSURL的委托
  3. 在UIViewController遵守的数据访问类中创建协议
  4. 在UIViewController中创建该类的实例,并启动提取过程(asynch)
  5. 当请求完成(或正在提交进度通知)到您的数据访问类时,通过委托将该信息发送到您的UIViewController
  6. 请求完全完成后,将项目列表返回给委托方法,并将该数据本地存储在步骤1的数组中。
  7. 根据您的具体情况,有多种方法可以做到这一点,但我只想给您一个想法。

答案 1 :(得分:0)

没关系;原来这个问题是由于过早发布。我正在处理永远不应该被释放的对象(数据源和根视图控制器),并且在创建两者之后设置了委托,所以这里确实没有问题。