Я хочу проверить, использует ли пользователь последнюю версию приложения. Если это так, я должен покрасить фон некоторых ячеек.Как проверить последнюю версию приложения с NSUserDefaults
Это код, я использую:
appDelegate.m
NSString *lastVersion = [[NSUserDefaults standardUserDefaults] objectForKey:@"lastVer"];
метод, где я хочу, чтобы проверить:
NSString *lastVersion = (NSString *) [[NSUserDefaults standardUserDefaults] objectForKey:@"lastVer"];
NSString *version = [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleVersion"];
lastVersion = @"1.3.4";
if(![lastVersion isEqualToString:version]){
cell.backgroundColor = [UIColor yellowColor]; ;
cell.imageView.image = [UIImage imageNamed:@"image.png"];
}
else {
cell.imageView.image = nil;
cell.backgroundColor = [UIColor whiteColor];
}
}
я делаю это правильно? Проверяет ли мой код последнюю версию или? Как я могу имитировать это поведение в симуляторе \ на устройстве?
Что я хочу сделать, это проверить, использует ли пользователь последнюю версию приложения, чтобы вызвать другой ключ NSUserDefaults, чтобы показать ячейки моего TableView с другим цветом фона.
EDIT
код, я использую, чтобы изменить цвет фона ячеек, если пользователь использует последнюю версию своего приложения, и если пользователь использовал приложение менее чем в три раза:
NSString *cellValue = cell.textLabel.text;
NSNumber *runNumber = (NSNumber *)[[NSUserDefaults standardUserDefaults] objectForKey:@"runNum"];
NSString *lastVersion = [[NSUserDefaults standardUserDefaults] objectForKey:@"lastVer"];
NSString *version = [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleVersion"];
if (!runNumber) {
runNumber = [NSNumber numberWithInt:0];
[[NSUserDefaults standardUserDefaults] setObject:runNumber forKey:@"runNum"];
[[NSUserDefaults standardUserDefaults] synchronize];
}
if([lastVersion isEqualToString:version]){ //check if the user is using the latest version
if ([runNumber intValue] < 4) { //check if user has used the app less than 3 times
if ([cellValue isEqual: "someText"]){
cell.backgroundColor = [UIColor yellowColor]; ;
cell.imageView.image = [UIImage imageNamed:@"image.png"];
}
else {
cell.imageView.image = nil;
cell.backgroundColor = [UIColor whiteColor];
}
}
else {
cell.imageView.image = nil;
cell.backgroundColor = [UIColor whiteColor];
}
}
}
И от этого я буду иметь возможность сравнить версии, не так ли? Я получаю сообщение об ошибке с помощью вашего кода: «Семантическая проблема: инициализация« NSString * »с выражением несовместимого типа« void ». Как вы можете видеть выше, я исправляю свой код, и я получаю эту работу, назначая lastVersion номер последней версии. – Phillip
уверен. Я не знаю достаточно о том, что вы делаете, но вы можете точно сравнить строки, содержащие числа. –
Я уверен, что вы используете гибрид своего кода и моего, я исправил мой, чтобы быть более ясным. –