Есть ли способ изменить переменную CFBundleVersion (NSString) на число с плавающей точкой.
Моя версия в настоящее время '1.0.2', но когда я получу из нее floatValue, она вернет 1.00000.
Как разобрать, чтобы я получил это значение: 1.02000
Спасибо.
Попробуйте это: -
CGFloat versionNumber; NSArray *versionItems = [[[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleShortVersionString"] componentsSeparatedByString:@"."]; if (versionItems.count == 3) { NSInteger major = [[versionItems objectAtIndex:0] integerValue]; NSInteger minor = [[versionItems objectAtIndex:1] integerValue]; NSInteger bug = [[versionItems objectAtIndex:2] integerValue]; versionNumber = [[NSString stringWithFormat:@"%ld.%ld%ld",(long)major,(long)minor,(long)bug] floatValue]; } else { versionNumber = [[[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleShortVersionString"] floatValue]; }
Это невозможно. Есть две десятичные точки, и нет однозначного способа представить это как число с плавающей точкой. Вы можете свернуть свой собственный код, чтобы преобразовать его в что-то , но в целом подход как таковой несовершенен.