gpt4 book ai didi

iphone - 切换选项卡(最初)非常慢 - 将功能移出 viewDidLoad?

转载 作者:行者123 更新时间:2023-11-28 20:47:09 27 4
gpt4 key购买 nike

在我的 iPhone 应用程序中,我使用 UITabBarController 布置了三个选项卡。第一个选项卡(在应用启动时加载)使用本地数据加载,速度非常快。

虽然第二个选项卡从网络下载 XML 文件并解析它,然后在 UITableView 中显示所有数据,但在较慢的连接(EDGE、3G)上需要很长时间才能加载).而且,由于我确实在 viewDidLoad 中调用了我的解析器,所以在一切都完成之前,应用程序不会切换到我的第二个选项卡——这意味着有时加载选项卡需要一段时间,它看起来像应用已锁定。

我宁愿让用户切换到该选项卡,立即加载 View ——即使是空的,然后下载/解析/显示数据。我让网络事件微调器在旋转,所以至少用户可以知道正在发生的事情。

这是我当前的 viewDidLoad:

// Load in the latest stories when the app is launched.
- (void)viewDidLoad {
[super viewDidLoad];
NSLog(@"Loading news view");

articles = [[NSMutableArray alloc] init];

NSURL *url = [NSURL URLWithString:@"http://example.com/mobile-app/latest-news.xml"];
NSLog(@"About to parse URL: %@", url);
parser = [[NSXMLParser alloc] initWithContentsOfURL:url];
parser.delegate = self;
[parser parse];
}

我找到了 this article ,它显示了如何在后台运行线程,但我尝试实现该代码,但无法让后台线程将数据加载回我的 UITableView - 调用了代码,但我如何确保加载已解析的文章回到我的表格 View ?

最佳答案

事实证明,我需要在辅助线程中加载数据后重新加载我的 UITableView,这解决了所有问题!

这是我的辅助线程 + viewDidLoad 函数中的最终代码:

-(void)initilizeNewsViewWithData {
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];

// Start the network activity spinner in the top status bar.
[UIApplication sharedApplication].networkActivityIndicatorVisible = YES;

articles = [[NSMutableArray alloc] init];
NSURL *url = [NSURL URLWithString:@"http://example.com/mobile-app/latest-news.xml"];
parser = [[NSXMLParser alloc] initWithContentsOfURL:url];
parser.delegate = self;
[parser parse];
[tblLatestNews reloadData]; // Need to refresh the table after we fill up the array again.

[pool release];
}

// Load in the latest news stories in a secondary thread.
- (void)viewDidLoad {
[super viewDidLoad];

[self performSelectorInBackground:@selector(initilizeNewsViewWithData) withObject:nil];
}

这个答案提醒我刷新表格 View :UITableView not displaying parsed data

关于iphone - 切换选项卡(最初)非常慢 - 将功能移出 viewDidLoad?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4963745/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com