Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/40.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 线程,TableViewController,视图转换问题。苹果手机_Iphone_Multithreading_Uitableview_Transition - Fatal编程技术网

Iphone 线程,TableViewController,视图转换问题。苹果手机

Iphone 线程,TableViewController,视图转换问题。苹果手机,iphone,multithreading,uitableview,transition,Iphone,Multithreading,Uitableview,Transition,在我的应用程序中,当用户单击一个按钮时,我想显示一个加载屏幕,然后调用一个从网络加载数据的方法,然后加载一个在UITableView中显示数据的视图。除了显示加载屏幕外,我的一切都正常工作。(由于网络数据/解析逻辑正在执行,UI挂起)有人能告诉我如何设置网络业务在单独的线程中运行,以及我应该何时启动该线程吗 我有一个处理转换的rootViewController。一个子类UIViewController、UIView和UITableViewController来处理此视图。将背景代码放入如下方法

在我的应用程序中,当用户单击一个按钮时,我想显示一个加载屏幕,然后调用一个从网络加载数据的方法,然后加载一个在UITableView中显示数据的视图。除了显示加载屏幕外,我的一切都正常工作。(由于网络数据/解析逻辑正在执行,UI挂起)有人能告诉我如何设置网络业务在单独的线程中运行,以及我应该何时启动该线程吗


我有一个处理转换的rootViewController。一个子类UIViewController、UIView和UITableViewController来处理此视图。

将背景代码放入如下方法中:

- (void)backgroundLogic;
{
    NSAutoreleasePool *pool = [ [ NSAutoreleasePool alloc ] init ];
    // do stuff here
    [ pool release ];
}
然后显示加载屏幕,然后在单独的线程中使用

[NSThread detachNewThreadSelector: @selector(backgroundLogic) toTarget: self withObject: nil];

后台线程完成后,您可以关闭加载屏幕,继续应用程序的正常流程。

何时分离线程?在UITableViewController的viewDidLoad?中,仅澄清用户将查看一个视图。他们点击一个按钮。我从网络加载数据并调用一两个解析函数。然后我加载一个新视图,在tableView中显示数据。viewDidLoad似乎是一个合理的分离线程的位置。