Objective c 在每次请求API时,将API值与本地存储值进行比较
好的,大脑完全冻结。我收到了CI Jenkins API的回复。结果包含我在Jenkins的项目的成功构建编号,每次在Jenkins平台上成功构建运行时,该编号都会递增 现在,我希望我的应用程序通过请求检查是否有新的成功构建,如果有,我希望通知用户。那么,如果本地存储的版本号小于我的Jenkins上的版本号,我如何将当前版本号存储在应用程序中,然后与每次请求检查Jenkins版本号进行比较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
[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"]];