私はNSArray
を持っていますので、最後の要素を最初に見るように、特殊なケースでそれを反復する必要があります。パフォーマンス上の理由からです:最後のものが意味をなさない場合、以前のものはすべて無視できます。だから、私はループを壊したい。しかし、0からnまで順方向に進むなら、それはうまくいきません。私はnから0に移動する必要があります。わからない方法や関数があるかもしれないので、ここでホイールを再作成する必要はありません。NSArrayを後方に反復する簡単な方法はありますか?
答えて
、あなたは(Leopardで利用でき、iPhone)のObjective-C 2.0の高速な列挙機能と組み合わせて-[NSArray reverseObjectEnumerator]
を使用することができます。http://cocoawithlove.com/2008/05/fast-enumeration-clarifications.html
for (id someObject in [myArray reverseObjectEnumerator])
{
// print some info
NSLog([someObject description]);
}
ソース
これは高速列挙型と考えられますが、これは '[myArray count] -1'から始まる通常のforループよりも速いのですか?どのように 'NSString'を逆に反復処理しますか? – ma11hew28
私は今ここにリンクがありませんが、アップルのエンジニアがどのように速い列挙体が機能し、なぜ速いのか説明しているどこかのビデオ(WWDCでした)があります。これは、インデックスベースのNSArray列挙型と古典的なFoundation列挙型の両方よりも優れており、シナリオに応じて多くの点で優れています。 –
私は辞書の逆のループを実行する必要があります、どのように行うには? –
[NsArray reverseObjectEnumerator]
hereから:
NSEnumerator* myIterator = [myArray reverseObjectEnumerator];
id anObject;
while(anObject = [myIterator nextObject])
{
/* do something useful with anObject */
}
これは性能ものためであるので、あなたは多くのオプションを持って、よく最高の作品かを確認するためにそれらすべてを試してみることをお勧めだろう。
-[NSArray reverseObjectEnumerator]
[array enumerateObjectsWithOptions:NSEnumerationReverse usingBlock:…]
-
その通常
- 使用をループするための標準的なCを反復し、起動してアレイを介して逆方向に働きます。ココアは、高速オブジェクトの列挙を実装し、逆に、独自の等価を作成する方法をよく読んで
もっと極端な方法(パフォーマンスが超臨界である場合)
- 。
- CまたはC++配列を使用します。
他にもあります。この場合、誰でも自由に追加することができます。他の回答に追加するには
enumerateObjectsWithOptions:NSEnumerationReverseが最良の答えですあなたはどのインデックスにいるのかを知る必要があります。ありがとう!!! –
for (int i = ((int)[array count] - 1); i > -1; i--) {
NSLog(@"element: %@",array[i]);
}
- 1. Readlineに代わる簡単な方法はありますか?
- 2. セットのサブセットの非反復グループを簡単に見つける方法はありますか?
- 3. pandas.Seriesを単調にする簡単な方法はありますか?
- 4. フレックスプリローダーを隠す簡単な方法はありますか?
- 5. CObListを簡単にソートする方法はありますか?
- 6. ファイルディスクリプタを簡単にフォークする方法はありますか?
- 7. QProgressBarを簡単にカスタマイズする方法はありますか?
- 8. "elseif marathon"より簡単な方法はありますか?
- 9. WebSphereに簡単にデプロイする方法はありますか?
- 10. これを行う簡単な方法はありますか?
- 11. BJ concurencyを扱う簡単な方法はありますか?
- 12. 簡単な方法はありますか?
- 13. API作成の簡単な方法はありますか?
- 14. Markdownを簡単なHTML文書に変換する簡単な方法はありますか?
- 15. C#からWebカメラにアクセスする簡単な方法はありますか?
- 16. System.Data.DataTableをlinqエンティティに変換する簡単な方法はありますか?
- 17. ScrollViewerを「バウンシー」にする簡単な方法はありますか?
- 18. jqueryコードをjavascriptに変換する簡単な方法はありますか?
- 19. Swingインターフェイスをデータソースにバインドする簡単な方法はありますか?
- 20. ランダムな画像を簡単にロードする方法はありますか?
- 21. Ionic2にパスワードを保存する簡単な方法はありますか?
- 22. AjaxをWebSocketに変更する簡単な方法はありますか?
- 23. 各ページにナビゲーションメニューを使用する簡単な方法はありますか?
- 24. バルーンチップにチェックボックスを追加する簡単な方法はありますか?
- 25. listmodelにジェネリックスをロードする簡単な方法はありますか?
- 26. 各反復wordpressの後に投稿のレイアウトを反転する方法はありますか?
- 27. 簡単な英語のJavaScriptの.bindを理解する簡単な方法はありますか?
- 28. if-elseチェーンの終わりにelseの反対を行う簡単な方法はありますか?
- 29. 反復可能なアイテムをスキップするPythonの方法はありますか?
- 30. コレクション内のすべてのユニークペアを簡単に反復する方法
"Objective-CでNSArrayをどのように逆転できますか?"全く異なる質問です。 – Nestor
Swift:http://stackoverflow.com/questions/24508592/how-to-iterate-for-loop-in-reverse-order-in-swift – Suragch