Iphone 加载背景数据并启动图像
我已经阅读了苹果公司的指南,我知道它说你不应该这样做,但请听我说,因为我想知道我所做的是不是不好的做法 当我的应用程序加载时,在app委托中,会进行一次web调用,设置选项卡的顺序以及其中的内容。网络电话是这样的Iphone 加载背景数据并启动图像,iphone,objective-c,xcode,Iphone,Objective C,Xcode,我已经阅读了苹果公司的指南,我知道它说你不应该这样做,但请听我说,因为我想知道我所做的是不是不好的做法 当我的应用程序加载时,在app委托中,会进行一次web调用,设置选项卡的顺序以及其中的内容。网络电话是这样的 WebCalls *wc = [[WebCalls alloc] init]; [wc setWebCallDidFinish:^(NSString * json) { // set up tab order here, as well as stores the JS
WebCalls *wc = [[WebCalls alloc] init];
[wc setWebCallDidFinish:^(NSString * json) {
// set up tab order here, as well as stores the JSON in a file on the phone
// Also code here to download images and cache them on phone
self.window.rootViewController = self.tabBarController;
[self.window makeKeyAndVisible];
}
[wc getData:phoneNumber];
现在这段代码工作得很好,但问题是当应用程序启动时会发生什么
WebCalls *wc = [[WebCalls alloc] init];
[wc setWebCallDidFinish:^(NSString * json) {
// set up tab order here, as well as stores the JSON in a file on the phone
// Also code here to download images and cache them on phone
self.window.rootViewController = self.tabBarController;
[self.window makeKeyAndVisible];
}
[wc getData:phoneNumber];
在给出的答案中,这个家伙向前推一个视图作为初始屏幕。将该视图向前推,然后在该屏幕中执行获取json数据并下载图像的web调用,然后关闭该视图并使tabcontroller视图成为主视图,这是一种糟糕的做法吗
或者我该如何防止这种延误?在AppDelegate中有这样一个足够大的web调用是一种不好的做法吗
如果在后台加载时向前推视图是一种不好的做法,那么您还有什么建议?如果我先将tabController设置为主rootViewController,然后在显示的第一个选项卡中执行webCall,然后在这个web调用完成时更新这些选项卡,会更好吗?我正在考虑这个,但是在web调用完成后,选项卡顺序可以是任意顺序,所以不确定首先显示哪个选项卡
非常感谢您的意见
在给出的答案中,这个家伙向前推一个视图作为初始屏幕。将该视图向前推,然后在该屏幕中执行获取json数据并下载图像的web调用,然后关闭该视图并使tabcontroller视图成为主视图,这是一种糟糕的做法吗
这是做这件事的方法。从ApplicationIDFinishLaunching下载内容通常是不好的做法,如果手机未连接到internet,会发生什么情况
演示一个简单的视图控制器(使用带有UIActivityIndicator和描述发生了什么的标签的
presentModalViewController:controller animated:NO
,然后在加载完成时将其关闭(或者加载失败,只需显示错误并拒绝访问应用程序)。记住还要检查飞行模式并通知用户。苹果公司也同意这种技术吗?我只是想在开始编码之前确认一下,因为我读了很多关于这方面的不同意见,并且有点困惑,因为有些人说是,其他人说不是,所以不确定是,只要你在后台加载und(即,不要冻结主线程)并显示适当的错误消息,他们应该对此没有问题。大量应用程序使用了这种技术。