Objective c 如何从afnetworking中提取JSON来为对象提供数据而不使其崩溃

Objective c 如何从afnetworking中提取JSON来为对象提供数据而不使其崩溃,objective-c,multithreading,afnetworking,afjsonrequestoperation,Objective C,Multithreading,Afnetworking,Afjsonrequestoperation,我正在使用afnetworking从RESTAPI获取JSON数据。根据这些JSON数据,我根据数组中的项数创建UIViewController。例如,如果我的JSON数据有3个项目,那么将创建3个UIViewController,并将其添加为我正在创建的滑块对象的子视图 问题是,由于afnetworking中的数据与我的主线程分开加载,程序崩溃,因为没有数据创建UIViewController *** Terminating app due to uncaught exception 'NSR

我正在使用afnetworking从RESTAPI获取JSON数据。根据这些JSON数据,我根据数组中的项数创建UIViewController。例如,如果我的JSON数据有3个项目,那么将创建3个UIViewController,并将其添加为我正在创建的滑块对象的子视图

问题是,由于afnetworking中的数据与我的主线程分开加载,程序崩溃,因为没有数据创建UIViewController

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

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

你肯定不想阻止主线程。这很糟糕;它使你的应用程序看起来像是被冻结了


听起来你想要一个“加载”屏幕。这样,您可以在数据准备就绪时发布通知。然后,加载屏幕的视图控制器将观察到该通知,然后在收到通知时显示其余数据。

请不要用
xcode
标记与iOS和Objective-C编程相关的一般问题,这是非常不合适的。@H2CO3耶!每天我都会收到一些帖子,上面有这个Xcode标签,我不知道为什么人们不能在语言(Objective c)和IDE(Xcode)@user1424508上做出不同。异常消息说,你正在尝试从空数组中获取数据,请!!在获取数据之前,请检查数组(如数组长度等)data@RDC令人惊讶的是,他们往往不能,而且他们甚至没有努力区分Xcode、Objective-C、iOS、Cocoa Touch API、编译器等。这很烦人,不应该是这样的…:-(只有当他们知道我在制作iOS应用程序时没有接触过Xcode…@RDC我理解错误消息的含义。我的问题是设计问题。我如何将数据从后端api拉到UIViewController而不崩溃。它在不同的线程上处理,因此,当后端数据加载到iOS应用程序时,主线程将停止已崩溃。如果是表视图,我可以使用空值启动UIViewController上的ivs,然后在从后端加载数据后重新加载我的表视图,但如何使用UIViewController执行此操作?嗨,Zadr,您能提供一个简单的代码示例来说明您的答案吗?谢谢