私はユーザーのアプリケーションのバージョン番号を取得し、私のサーバー上の現在のアプリケーションのバージョンと比較する必要があります。ユーザーのアプリのバージョンが低い場合、彼は自分のアプリを更新するためのポップアップを取得します。これを実行している間、私は、アプリケーションのバージョンと利用可能なバージョンを比較する必要があります。 Objective-Cでと"2.0.09"
という形式の文字列を比較して最高の文字列を取得するにはどうすればよいですか?"2.0.1"、 "2.0.09"の形式の文字列を比較
答えて
これはテストしていません(現在はOS Xではありません)。これは暗闇の中で完全なショットです。 NSStringクラスのcompare:options:
メソッドの使用はどうですか?
NSString *v1 = "2.0.1";
NSString *v2 = "2.1";
NSComparisonResult *r= [v1 compare:v2 options:NSNumericSearch];
if (r == NSOrderedSame || r == NSOrderedDescending) {
// do
} else {
// do
}
これは機能しますか?右のオプションであるとして、あなたがちょうどそれらを比較することができ
あなたの文字列は、フォームのすべての場合は、「2.0.1」など:localVersionが否定である場合
([localVersionString compare:currentVersionString
options:NSNumericSearch] != NSOrderedAscending);
上記は「YES
」を返しますサーバ上のcurrentVersionよりも古いもの、そうでなければ "NO
"(私はこれが正しい方法で丸められていると仮定します)。
これは、iDeviceにインストールされているiOSのローカルバージョンを確認するときに行う通常の処理です。
この投稿に回答したように。 Compare version numbers in Objective-C
githubの簡単なバージョンチェックを実装しているNSStringカテゴリをチェックしてください。 https://github.com/stijnster/NSString-compareToVersion
[@"1.2.2.4" compareToVersion:@"1.2.2.5"];
これは、使用して、より正確であるNSComparisonResultを返します。
[@"1.2.2" compare:@"1.2.2.5" options:NSNumericSearch]
ヘルパも追加されました。
[@"1.2.2.4" isOlderThanVersion:@"1.2.2.5"];
[@"1.2.2.4" isNewerThanVersion:@"1.2.2.5"];
[@"1.2.2.4" isEqualToVersion:@"1.2.2.5"];
[@"1.2.2.4" isEqualOrOlderThanVersion:@"1.2.2.5"];
[@"1.2.2.4" isEqualOrNewerThanVersion:@"1.2.2.5"];
Stijnsterに感謝します。あなたのカテゴリーはすばらしいですが、すぐにスウィフトバージョンが本当に必要になるでしょう... – wuf810
- 1. ラムダ式の文字列の比較
- 2. Pythonの日付比較と文字列出力/形式
- 3. Javascriptは2つの文字列を特定の形式で比較します
- 4. 文字列比較
- 5. 比較文字列
- 6. 絵文字と比較の適切なNFD形式
- 7. 空の文字列に "dd-MM-yyyy"という形式の文字列の日付を比較する方法
- 8. 比較Iは、文字列形式の両方で2回を持って
- 9. 文字列の比較 - Java
- 10. Pythonの文字列比較
- 11. PHPの文字列比較
- 12. 文字列/パスの比較
- 13. PHPの文字列比較
- 14. DateTime、文字列の比較
- 15. Python文字列の比較
- 16. Java:文字列の比較
- 17. Javaの文字列比較
- 18. C++文字列の比較
- 19. グローブ文字列の比較
- 20. MD5文字列の比較
- 21. 文字列の比較C#
- 22. Ajaxの文字列比較
- 23. 文字列のブール比較
- 24. DXF文字列の比較
- 25. C++文字列の比較
- 26. C#の文字列比較#
- 27. C++文字列の比較
- 28. SAS文字列の比較
- 29. Qtの文字列比較
- 30. 比較のデータ形式
NSNumericSearchは手動で行うよりもはるかに良い選択肢です。 – benzado