0

我刚刚构建了我的第一个应用程序,现在我开始在手机上对其进行测试。当我在构建应用程序后首次启动应用程序时,它看起来很棒,启动图像出现,然后我的 json 数据通过 NSURL 加载并正确显示在应用程序上。但是当我关闭应用程序时,通过 php 和 mysql 更新数据并重新打开它,启动图像没有出现,我的应用程序也没有更新。是否可以像我第一次启动应用程序时那样启动应用程序,始终拥有启动图像并获得新数据?

如果有帮助,这是我的代码。

- (void)viewDidLoad
{
    [super viewDidLoad];
    [self loadJSON];
}


- (void)loadJSON
{

    Reachability *networkReachability = [Reachability reachabilityForInternetConnection];
    NetworkStatus networkStatus = [networkReachability currentReachabilityStatus];
    if (networkStatus == NotReachable) {
        dispatch_async(dispatch_get_main_queue(), ^{
            UIAlertView *alert = [[UIAlertView alloc] initWithTitle: @"Error" message: @"Connection Failed" delegate: self cancelButtonTitle:@"Refresh" otherButtonTitles:nil]; [alert show]; [alert release];
        });
    } else {

        dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
            NSURL *url = [NSURL URLWithString:@"http://url.com/GetData.php"];

            NSData *data = [NSData dataWithContentsOfURL:url options:0 error:nil];

            NSArray *array = [NSJSONSerialization JSONObjectWithData:data options:0 error:nil];

            NSArray *firstItemArray = array[0];

            NSString *yesNoString = firstItemArray[0];
            NSString *dateString = firstItemArray[1];
            NSString *timeString = firstItemArray[2];
            NSString *homeString = firstItemArray[3];
            NSString *awayString = firstItemArray[4];
            NSString *lastUpdatedString = firstItemArray[5];

            dispatch_async(dispatch_get_main_queue(), ^{
                self.YesOrNo.text = yesNoString;
                self.date.text = [@"For " stringByAppendingString:dateString];
                self.time.text = timeString;
                self.home.text = homeString;
                self.away.text = awayString;
                self.lastUpdated.text = lastUpdatedString;
                self.lastUpdatedText.text = @"Last Updated";
                self.vs.text = @"vs";
            });
        });
    }

}




- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex {
    [self loadJSON];
}

- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

- (void)dealloc {
    [_YesOrNo release];
    [_date release];
    [_time release];
    [_vs release];
    [_home release];
    [_away release];
    [_lastUpdatedText release];
    [_lastUpdated release];
    [super dealloc];
}
@end

如果有人能指出我正确的方向,那将是非常好的和感激的,谢谢。

4

2 回答 2

3

当您在运行应用程序时点击圆形主页按钮时,它只是将其置于后台,并继续以一种紧张状态运行。当您再次点击它的图标时,它只会唤醒,并且不会重新启动。如果您希望在用户点击主页按钮时让您的应用程序完全退出,请使用 info.plist 选项“UIApplicationExitsOnSuspend”,也称为“应用程序不在后台运行”。在您的 info.plist 中将此设置为 YES,您每次都会有一个新的开始。您可以通过在 Project Navigator 模式下单击 Xcode 中的项目来访问它,然后选择顶部中间的“信息”选项卡。

于 2013-07-29T02:47:29.023 回答
1

由于这是您的第一个应用程序,您应该尝试阅读各种设备和操作系统版本。阅读各种应用程序状态,以及 AppDelegateClass 中存在的方法,这些方法在应用程序进入各种状态时被调用,尝试阅读它们。

因此,在您的情况下发生的事情是您使用的设备是多任务设备。因此,当您按下主页按钮或睡眠按钮时,游戏会进入后台,并且不会被杀死。因此,下次当您点击设备上的应用程序图标时,它会将其带回前台并且不会重新启动它,因此您的 Viewdidload 方法不会被调用,您的更改也不会得到反映。

所以,现在要终止您的应用程序,您可以通过此链接 http://www.gottabemobile.com/2013/02/10/how-to-close-apps-on-iphone/

希望这可以帮助。

于 2013-07-29T05:15:57.970 回答