数据在iphone应用程序上从数据库中无意识地更新

时间:2014-05-02 10:15:06

标签: ios objective-c database

我使用以下代码通过php-API从数据库中获取数据:

- (void) viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];

[self loadDataWithSpinner];
[self reloadAllData];

}

- (void) loadDataWithSpinner {
if (!self.spinner) [self setupSpinnerView];
self.sessions = nil;

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^(void){
    self.userId = [[NSUserDefaults standardUserDefaults] integerForKey:@"CurrentUserId"] ;
    self.sessions = [self getAllSessionsForUserId:self.userId];
    dispatch_async(dispatch_get_main_queue(), ^(void){
        if (self.sessions) {
            self.spinnerBgView.hidden = YES;
            [self setupChartsAndCountingLabelsWithData];
        }
    });
});

}

- (NSArray *) getAllSessionsForUserId: (int) userId {
NSData *dataURL = nil;
NSString *strURL = [NSString stringWithFormat:@"http://webapiurl.com/be.php?queryType=fetchAllBasicSessions&user_id=%i", userId];
dataURL = [NSData dataWithContentsOfURL:[NSURL URLWithString:strURL]];
NSError *error = nil;

if (dataURL) {
    NSArray *sessions = [NSJSONSerialization JSONObjectWithData:dataURL options:kNilOptions error:&error];
    return sessions;
} else {
    return Nil;
}

}

代码有问题吗?在使用相同数据库调用的Web浏览器中进行测试时,我获得了正确的数据。但是在应用程序中它有时会立即更新,有时需要花费五分钟才能更新数据。即使我从手机/模拟器中删除了应用程序,但在再次打开应用程序时,数据有时无法更新。

我真的很感激一些帮助。

1 个答案:

答案 0 :(得分:0)

我终于找到了答案。正如我所想,我的代码没有错。问题出在服务器端。而且,正如他们在这篇帖子中所说:

NSURLConnection is returning old data

似乎配置错​​误的服务器端或代理。这使得缓存行为一切都很奇怪。我尝试了另一台服务器,一切正常!

希望这可以帮助有同样问题的人,因为它确实浪费了我很多时间。