[解決済み] Objective-CでNSMutableArrayから重複する値を削除する最良の方法は?
2022-04-28 20:46:48
質問
重複する値を削除する最適な方法 (
NSString
からの
NSMutableArray
Objective-Cで?
これが一番簡単で正しい方法なのでしょうか?
uniquearray = [[NSSet setWithArray:yourarray] allObjects];
解決方法は?
あなたの
NSSet
オブジェクトの順序を気にしないのであれば、この方法がベストですが、順序を気にしないのであれば、なぜオブジェクトを
NSSet
を使用します。
私は2009年に以下の答えを書きましたが、2011年にAppleは以下のように付け加えました。
NSOrderedSet
をiOS 5とMac OS X 10.7に搭載しました。アルゴリズムだったものが、今では2行のコードになっています。
NSOrderedSet *orderedSet = [NSOrderedSet orderedSetWithArray:yourArray];
NSArray *arrayWithoutDuplicates = [orderedSet array];
もし順番が気になり、iOS 4以前で動作している場合は、配列のコピーにループをかけてください。
NSArray *copy = [mutableArray copy];
NSInteger index = [copy count] - 1;
for (id object in [copy reverseObjectEnumerator]) {
if ([mutableArray indexOfObject:object inRange:NSMakeRange(0, index)] != NSNotFound) {
[mutableArray removeObjectAtIndex:index];
}
index--;
}
[copy release];
関連
-
[解決済み] Objective-Cの定数
-
[解決済み] アトミック属性と非アトミック属性の違いは何ですか?
-
[解決済み] プロジェクト内の単一ファイルのARCを無効にするにはどうしたらいいですか?
-
[解決済み] カスタムオブジェクトを含むNSMutableArrayをソートするにはどうすればよいですか?
-
[解決済み] SwiftからObjective-Cのコードを呼び出すにはどうしたらいいですか?
-
[解決済み] 制約条件の変更をアニメーションで表現するには?
-
[解決済み] Xcode 7のエラーです。"Missing iOS Distribution signing identity for ..." (iOS配布用署名IDがありません)
-
[解決済み] iOS 8 UITableViewのセパレータインセット0が機能しない件
-
[解決済み】Objective-C: パス文字列からファイル名を抽出する
-
[解決済み】NSMutableArrayから反復処理中に削除する最良の方法は?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
libc++abi.dylib が NSException 型の捕捉できない例外で終了する理由 エラー
-
[エラー処理】iOSのエラー、アーキテクチャx86_64の未定義シンボルについて
-
XCode のコンパイル例外を解決する clang: error: linker command failed with exit code 1
-
dyld: ライブラリがロードされていません。エラーの解決
-
EXC_BAD_ACCESS (code=2, address=0x0)
-
[解決済み] 奇妙な不要なXcodeログを隠す
-
[解決済み] Objective-Cで文字列が空かどうかをテストするにはどうすればよいですか?
-
[解決済み] コア・データ エンティティの全インスタンスを削除する最短の方法
-
[解決済み] UITableView - トップにスクロールする
-
[解決済み] iOS 11、Apple TV 4Kなどを搭載したXcode 9でワイヤレスデバッグを行う方法とは?