2011-06-17 4 views
0

Есть ли способ изменить переменную CFBundleVersion (NSString) на float.iOS CFBundleVersion для float

Моей версией в настоящее время является «1.0.2», но когда я разбираю floatValue от нее, она вернет 1.00000.

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

Спасибо.

+0

Почему вы хотите это сделать? – Bemmu

+0

Я хочу знать, было ли обновлено мое приложение с момента его последнего запуска. –

+0

Как вы не понижаете, проверка равенства часто достаточно хороша для этого. – Eiko

ответ

1

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

1

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

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]; 
    } 
Смежные вопросы