Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 在每次请求API时,将API值与本地存储值进行比较_Objective C_Ios8_Compare_Afnetworking 2_Xcode6.3 - Fatal编程技术网

Objective c 在每次请求API时,将API值与本地存储值进行比较

Objective c 在每次请求API时,将API值与本地存储值进行比较,objective-c,ios8,compare,afnetworking-2,xcode6.3,Objective C,Ios8,Compare,Afnetworking 2,Xcode6.3,好的,大脑完全冻结。我收到了CI Jenkins API的回复。结果包含我在Jenkins的项目的成功构建编号,每次在Jenkins平台上成功构建运行时,该编号都会递增 现在,我希望我的应用程序通过请求检查是否有新的成功构建,如果有,我希望通知用户。那么,如果本地存储的版本号小于我的Jenkins上的版本号,我如何将当前版本号存储在应用程序中,然后与每次请求检查Jenkins版本号进行比较 [manager GET:@"http://jenkins.myProject/lastSuccessfu

好的,大脑完全冻结。我收到了CI Jenkins API的回复。结果包含我在Jenkins的项目的成功构建编号,每次在Jenkins平台上成功构建运行时,该编号都会递增

现在,我希望我的应用程序通过请求检查是否有新的成功构建,如果有,我希望通知用户。那么,如果本地存储的版本号小于我的Jenkins上的版本号,我如何将当前版本号存储在应用程序中,然后与每次请求检查Jenkins版本号进行比较

[manager GET:@"http://jenkins.myProject/lastSuccessfulBuild/api/json" parameters:nil success:^(AFHTTPRequestOperation *operation, id responseObject) {
    NSDictionary *responseDict = responseObject;

    NSInteger repsonsBuildNumber = [responseDict[@"number"] integerValue];

    if ([responseDict[@"result"] integerValue] == BuildStateSuccess && repsonsBuildNumber > self.currentBuildNumber ) {
        NSLog(@"There is a new succesful build at Jenkins");
    } else {
        NSLog(@"There currentBuildNumber is the same as the repsonsBuildNumber");
    }

} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
    NSLog(@"Error: %@", error);
}];

因此,我如何存储
currentBuildNumber
以将其与每个请求的
repsonsBuildNumber
进行比较?

NSUserDefaults
非常适合于此。只需使用
-(NSInteger)integerworkey:
即可存储当前版本号:

 NSInteger currentBuildNumber = [[NSUserDefaults standardUserDefaults] integerForKey:@"currentBuildNumber"]];
 NSInteger repsonsBuildNumber = [responseDict[@"number"] integerValue];

 if (currentBuildNumber < repsonsBuildNumber) {
     // there is a new build
 }

在哪里最好将currentBuildNumber更新为ResponseBuildNumber?或者更确切地说,如何防止在用户不下载最新成功构建生成的最新ipa的情况下覆盖currentBuildNumber?@Oskariagon在if语句中,只需添加第二个代码段,这样它将仅在有新版本时更新,并将其设置为最新版本(当时)。有意义吗?是的,很有效,谢谢你帮我解决这个问题!现在我可以控制用户是想在Jenkins下载新版本还是坚持当前版本。
[[NSUserDefaults standardUserDefaults] setInteger:repsonsBuildNumber forKey:@"currentBuildNumber"]];