我的 iPhone 应用程序卡住了

Posted

技术标签:

【中文标题】我的 iPhone 应用程序卡住了【英文标题】:My iphone app gets stuck 【发布时间】:2009-09-22 22:11:18 【问题描述】:

在登录屏幕之后,将用户名/密码发送到网络服务并返回 true(应该启动应用程序的其余部分)或 false(用户名/密码不正确或未经授权)的响应。该应用程序会提供您已通过身份验证的警报视图,但它不会加载视图的其余部分?

谁能帮帮我?

if ([soapResults isEqualToString: @"true"])
    
            UIAlertView *welcome = [[UIAlertView alloc] initWithTitle:@"Welcome!" message:@"Welcome, You are now authenticated to a Coyote Logistics application." delegate:self cancelButtonTitle:@"OK",nil otherButtonTitles:nil];
    [welcome show];
            [welcome release];
            [soapResults release];
            soapResults = nil;
            [loginIndicator stopAnimating];
            loginIndicator.hidden = TRUE;
            loggedinLabel.text = usernameField.text;
            loggedinLabel.textColor = [UIColor blackColor];
            NSLog(@"Valid Login"); 
            FeedsViewController *fvController = [[FeedsViewController alloc] initWithTitle:@"LoadBoard" withNavigationTitle:@"Available Loads" withPropertyFile:@"feeds.plist"];
            AboutViewController *avController = [[AboutViewController alloc] init];
            SettingsViewController *svController = [[SettingsViewController alloc] init];
            UINavigationController *fvNavController = [[UINavigationController alloc] initWithRootViewController:fvController];
            UINavigationController *avNavController = [[UINavigationController alloc] initWithRootViewController:avController];
            UINavigationController *svNavController = [[UINavigationController alloc] initWithRootViewController:svController];
            UITabBarController *tbController = [[UITabBarController alloc] init];

            fvNavController.navigationBar.tintColor = [UIColor colorWithRed:0.14 green:0.18 blue:0.25 alpha:1.00];
            avNavController.navigationBar.tintColor = [UIColor colorWithRed:0.14 green:0.18 blue:0.25 alpha:1.00];
            svNavController.navigationBar.tintColor = [UIColor colorWithRed:0.14 green:0.18 blue:0.25 alpha:1.00];


            [[fvController tabBarItem] setImage:[UIImage imageNamed:@"rss.png"]];

            tbController.viewControllers = [NSArray arrayWithObjects:fvNavController, avNavController, svNavController, nil];

            // Configure and show the window
            [window addSubview:tbController.view];
            [window makeKeyAndVisible];
            [LoginViewController release];
    

【问题讨论】:

你是什么意思“卡住”你是在使用 gdb 来找出你“卡住”的地方吗?你的应用程序崩溃了吗?你做了回溯吗?在您粘贴的代码中,我也没有看到任何类型的 NSURLRequest 或任何连接到远程服务器的东西。 对不起,如果我不够清楚,我有它提出请求并收到答案就好了。我需要它做的是当它收到一个值是时,它需要将所有这些启动到主应用程序中。它这样做是为了客户安全,因此只有授权用户才能访问应用程序 soapResults 是来自网络服务的结束字符串。 True 表示授权成功。 【参考方案1】:

首先,如果您在应用程序委托方法 applicationDidFinishLaunching 中执行此操作,我建议您不要这样做。

为什么?因为如果您在该委托方法中花费的时间过长,iPhone OS 将关闭您并退出应用程序。

您是否考虑过让导航控制器准备好进入选项卡控制器,并使用模式登录?

当您返回成功后,您可以关闭模​​式并继续,在导航控制器中填写数据。

不过,如果您在 applicationDidFinishLaunching 委托方法中,只需创建视图控制器并以模态方式放置它,以便控制可以返回给 UIApplication 对象。

【讨论】:

以上是关于我的 iPhone 应用程序卡住了的主要内容,如果未能解决你的问题,请参考以下文章

为啥在 64 位 5s iPhone 上安装时应用程序会卡住

下载文件卡住android应用程序:worklight

使用 json 解析的 iPhone 应用程序

我可以以编程方式锁定我的iPhone屏幕吗?

将文件从iPhone上传到Django

iphone应用程序布局