0

我正在使用 afnetworking 从我的 rest api 中获取 JSON 数据。从该 JSON 数据中,我根据数组中有多少项创建 UIViewControllers。例如,如果我的 JSON 数据有 3 个项目,则创建 3 个 UIViewControllers 并将其添加为我正在创建的滑块对象的子视图。

问题是因为来自 afnetworking 的数据完成与我的主线程分开加载,程序崩溃,因为没有数据可以创建我的 UIViewControllers。

*** Terminating app due to uncaught exception 'NSRangeException', reason: '*** -   [__NSArrayI objectAtIndex:]: index 0 beyond bounds for empty array'.

我该如何解决这个问题?我读到我可以使用 [operation waitUntilFinished] 来阻止主线程运行,直到我的服务器加载了所有数据,但人们建议不要这样做。

4

1 回答 1

2

你绝对不想阻塞主线程。那很糟; 它使您的应用程序看起来像被冻结了。

听起来您想要一个“加载”屏幕。这样,您可以在数据准备好时执行类似发布通知之类的操作。然后,您的加载屏幕的视图控制器将观察该通知,然后在它进入时显示其余数据。

于 2013-03-28T07:22:52.120 回答