問題タブ [fast-enumeration]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
3 に答える
2645 参照

objective-c - 高速列挙中にオブジェクトを nil に設定する

次のように、配列を列挙するときにオブジェクトを「nil」に設定したいと思います。

Xcode は、「高速列挙変数は、デフォルトでは ARC で変更できません。これを許可するには、変数 __strong を宣言してください。

これは、次のことを意味します。

これは冗長なようです。私が理解している限り、オブジェクトへの強い参照を宣言すると、その保持カウントが 1 増加し、それを nil すると保持カウントが 1 減少します。nilでは、配列を列挙するときにオブジェクトを設定するにはどうすればよいでしょうか。

ARCを使用しています。

0 投票する
3 に答える
863 参照

objective-c - Objective-Cスタイルの列挙の最初の要素を認識する方法は?

私はNSMutableArrayofを持ってNSNumbersいます。Objective-C スタイルの列挙でそれらすべてを列挙したいと思います。これが私がこれまでに行ったことです。

最初のオブジェクトをすばやく認識できるようにしたいのですが、もちろんこれはできますが、

これをより速く行う方法はありますか?もちろん昔ながらの C スタイルの方法もあり、最初に配列からオブジェクトを削除し、列挙後に元に戻します。より良いテクニックがあるかどうかを知りたいだけです。

0 投票する
1 に答える
306 参照

objective-c - Objective-Cの高速列挙検索は壊れません

ツリーで一致するオブジェクトを見つけようとしているので、ObjC高速列挙を使用しています。問題は、私のメソッドが一致する値を見つけて戻り行に到達し、値をnilに設定して、反復を続けることです。これが私の方法です:

ブレークポイントを設定してコードの実行を追跡すると、ブレークがヒットし、リターン行に移動して、反復を続行するステートメントに戻ります。ここで何が欠けていますか?

0 投票する
1 に答える
65 参照

objective-c - 高速列挙を入力するための適切な値

動物と呼ばれるモデル(コアデータ)を設定しています。私はこれに特定の順序でアクセスする必要があり、そうするために私は以下にリストされたコードを使用します。forループでXXXXXXXXXの代わりに何を入力する必要がありますか?

モデルの名前を入力する必要があると言われたので、この場合は「Animals」ですが、変数Animalsが宣言されていないというエラーが表示されます。私はココアプログラミングについてはかなり環境に配慮しています。

ありがとうございました

よろしくお願いします

イゴール

0 投票する
1 に答える
343 参照

ios6 - UICollectionViewレイアウトの非常に大きなデータセットをハッシュする最も速い方法は何ですか...NSIndexPathが遅すぎます

カスタムレイアウトの大きなデータセット(> 2000アイテム)を持つUICollectionViewControllerがあります。セクションを使用すると、スクロールパフォーマンスが非常に不安定になりました。Instrumentsといくつかのテストを使用して、これはレイアウトのルックアップによるものであると判断しました(layoutAttributesForElementsInRect:)。レイアウト属性をにキャッシュしprepareLayout、ここでそのように検索します。これは、私が知っている最速の方法です。

私は、CPU時間の約25%がこれを列挙するのに費やされ、主にに費やされていることを発見しました[NSIndexPath isEqual:]。したがって、これらの値をハッシュするためのより高速な方法が必要です。

セクション化されたUICollectionViewFlowLayoutで同じデータを使用してクロステストを実行し、スムーズだったため、可能である必要があります。

0 投票する
1 に答える
311 参照

performance - 各反復で ODE ソルバーを含む Matlab コードのベクトル化

for ループを記述する必要があり、毎回常微分方程式を解く必要がある高速な MATLAB コードを記述したいと考えています。コードをベクトル化する方法はありますか? 以下はコードの一部です。

どこ

0 投票する
10 に答える
35028 参照

ios - 配列に別の配列の同じオブジェクトが含まれているかどうかを確認する最速の方法

目標は、2 つの配列を比較して、同じオブジェクトが含まれているかどうかを確認することです (できるだけ早く - 配列に多くのオブジェクトがあります)。isEqual:並べ替えが異なるため、配列をチェックすることはできません。

ここに投稿されたソリューションを既に試しました ( https://stackoverflow.com/a/1138417 - Peter Hosey による投稿の最後のコード スニペットを参照)。しかし、これは別の方法でソートされた配列では機能しません。

私が現在使用しているコードは次のとおりです。

これは機能しますが、これらは 2 つのネストされた高速列挙です。比較を高速化する方法はありますか?

0 投票する
3 に答える
461 参照

objective-c - なぜ Obj-c 高速列挙ループで型を設定するのですか?

プレースホルダーを NSString* または NSDate*に変更すると、for ループは一致しない型を無視するだけなので、"1" が表示されるはずです。しかし、結果は「一匹一匹」。

とにかく重要ではないように見えるので、これは、状況が何であれ、プレースホルダーを idにする必要があることを意味しませんか?

0 投票する
4 に答える
314 参照

objective-c - 私がよく知らない奇妙な for ループ: "for (id * in *)"

この質問が非常に単純である場合は申し訳ありませんが、私は狂ったようにグーグルで検索しましたが、これが何であるかについての適切な説明を見つけることができません.

私は Objective-C を学んでいますが、これはfor今まで見たことのない形式のループです。シンプルに慣れてきた

forループのスタイル。