CFBundleVersion変数(NSString)をfloatに変更する方法はありますか?iOS CFBundleVersion to float
私のバージョンは現在 '1.0.2'ですが、floatValueを解析すると1.00000が返されます。 1.02000
ありがとう:私は、この値を取得しますそれを解析する方法
。
CFBundleVersion変数(NSString)をfloatに変更する方法はありますか?iOS CFBundleVersion to float
私のバージョンは現在 '1.0.2'ですが、floatValueを解析すると1.00000が返されます。 1.02000
ありがとう:私は、この値を取得しますそれを解析する方法
。
これはできません。 2つの小数点があり、それを浮動小数点として表現する明白な方法はありません。 何かに変換する独自のコードをロールするかもしれませんが、基本的にはそのようなアプローチには欠陥があります。
はこれを試してください: -
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];
}
は、なぜあなたはこれをしたいですか? – Bemmu
私のアプリが最後に起動されてから更新されたかどうかを知りたい。 –
ダウングレードしないので、同等性のチェックで十分です。 – Eiko