在問自己爲什麼:我正在編寫一個擴展程序,該程序遵守應用程序的CFBundleVersion
&然後將其與擴展程序不支持的舊版本進行比較。將CFBundleVersion轉換爲NSNumber並與之比較
這是我做的比較。
CFStringRef _version = CFURLCreateStringByAddingPercentEscapes(NULL,
(__bridge CFStringRef)[[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleVersion"],
NULL,
(CFStringRef)@" !*'();:@&=+$,/?%#[]",
kCFStringEncodingUTF8);
NSString *versionString = (NSString *)CFBridgingRelease(_version);
NSNumberFormatter * nsFormatter = [[NSNumberFormatter alloc] init];
[nsFormatter setNumberStyle:NSNumberFormatterDecimalStyle];
NSNumber * installedVersion = [nsFormatter numberFromString:versionString];
NSNumber * incompatibleVersion = [nsFormatter numberFromString:@"6.1.0"];
if (installedVersion <= incompatibleVersion) {
NSLog(@"This was triggered");
}
該代碼工程很好,但只有當有兩位小數。例如,如果我將CFBundleVersion
設置爲6.0
或5.0
代碼未被觸發。有比較好的方法嗎?我不明白爲什麼它的想法5.0
大於6.1.0
對此有何建議?
謝謝,我搜查了但沒有任何東西。 – CokePokes