Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/116.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
iOS CFBundleVersion将浮动_Ios_Nsstring_Floating Point_Version - Fatal编程技术网

iOS CFBundleVersion将浮动

iOS CFBundleVersion将浮动,ios,nsstring,floating-point,version,Ios,Nsstring,Floating Point,Version,是否有办法将CbundLeverVersion变量(NSString)更改为浮点 我的版本目前是“1.0.2”,但当我从中解析floatValue时,它将返回1.00000 如何解析它,以便获得该值:1.02000 谢谢。这是不可能的。有两个小数点,没有明确的方式将其表示为浮点。您可以滚动自己的代码将其转换为其他内容,但基本上这种方法是有缺陷的。尝试以下方法:- CGFloat versionNumber; NSArray *versionItems = [[[NSBundle

是否有办法将CbundLeverVersion变量(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];
    }

我想知道我的应用程序是否在上次启动后更新过。因为你不降级,所以检查是否相等通常就足够了。