iOS CFBundleVersion, чтобы плавать - PullRequest
0 голосов
/ 17 июня 2011

Есть ли способ изменить переменную CFBundleVersion (NSString) на число с плавающей точкой.

Моя версия в настоящее время '1.0.2', но когда я получу из нее floatValue, она вернет 1.00000.

Как разобрать, чтобы я получил это значение: 1.02000

Спасибо.

Ответы [ 2 ]

1 голос
/ 12 сентября 2015

Попробуйте это: -

    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];
    }
1 голос
/ 17 июня 2011

Это невозможно. Есть две десятичные точки, и нет однозначного способа представить это как число с плавающей точкой. Вы можете свернуть свой собственный код, чтобы преобразовать его в что-то , но в целом подход как таковой несовершенен.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...