問題タブ [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 投票する
1 に答える
274 参照

c# - 巨大なディレクトリからファイルを効率的にランダムに列挙する

特定の検索パターン (*.txt など) を使用して、ディレクトリから再帰的にファイルを列挙できるようにしたいと考えています。ただし、いくつかの制約があります。

  1. メカニズムは非常に効率的でなければなりません。目標は、(IEnumerable を使用して) ファイルを 1 つずつ列挙することです。そのため、ファイルのリストが膨大な場合でも、1 つのファイルを処理するのに永遠にかかることはありません。
  2. 列挙はファイルをランダムに返す必要があるため、プログラムの 2 つのインスタンスがディレクトリを列挙しようとしても、両方が同じ順序でファイルを表示することはありません。

要件を考えると、DirectoryInfo.EnumerateFilesは有望に見えますが、2 番目の要件を満たしていません。パフォーマンスに関する考慮事項を取り除けば、ソリューションは簡単です (コレクション全体を取得し、アクセスする前にシーケンスをランダム化するだけです)。

誰かが .net 3.5/4.0 での C# 実装の可能な選択肢を提案できますか?

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

cocoa-touch - [NSOperationQueue操作]で列挙しても安全ですか?

高速列挙を介して、を介して列挙するのは安全[NSOperationQueue operations]ですか?そのようです:

操作は非同期であり、別のスレッドで実行されるoperationsため、いつでも変更される可能性があります(メインスレッドの実行中を含む)。高速列挙はこれを防ぎますか、それとも代わりに操作配列を使用する必要がcopyありますか?autorelease

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

ios - iOS で UITextFields を介して列挙する方法

サブビューを列挙してテキスト フィールドを見つける正しい方法はどれですか?

また

これが正しい言い回しではないことはわかっていますが、それが一番上の方法である場合、ビューからテキストフィールドにどのように「変換」するのですか?

0 投票する
8 に答える
2383 参照

objective-c - NSStringsを指定すると、高速列挙がNSNumbersをスキップしないのはなぜですか?

高速列挙の使い方は知っていると思いましたが、わからないことがあります。NSString3つのオブジェクトと3つのオブジェクトを作成NSNumberし、それらをNSMutableArray:に配置するとします。

NSString次に、次のように、すべてのオブジェクトで高速列挙を実行します。

コンソールでは、次の結果が得られます:

sのみをログに記録NSStringしましたが、配列内のすべてのオブジェクトの行を取得します。sも含めて、NSNumber理由がわかりません。高速列挙は常に配列に含まれるすべてのオブジェクトを使用しますか?

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

iphone - 高速列挙の制限は何ですか?

間違っている場合は修正してください。

高速列挙を使用する場合:

新しいエントリを追加または削除することはできませんが、既存のエントリを変更することはできます。

新しいエントリを追加または削除することはできませんが、既存のエントリを変更することはできます。

新しいエントリを追加/削除したり、既存のエントリを変更したりすることはできません。

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

iphone - NSDictionary 内の配列を UITableViewCell サブビューに読み込む

以下の plist 辞書を UITableView のセルに読み込もうとしています。次のように、ArrayKey で示される配列に含まれる各文字列のサブビューを作成します。

ディクショナリを読み取るために高速列挙を使用しましたが、各配列の最初の文字列のみを正常に読み取ることができます。

サブビューのピースがありません。そして、高速列挙の NSLog を追加すると、出力に配列内のすべての文字列が表示されるのに、最初の文字列しか表示できない理由がわかりません (つまり、myString1 を 1 行に、myString2 を 2 行目に myString3 なしで)。

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

objective-c - この2倍の高速列挙のより良い解決策は?

配列をループして、この配列のオブジェクト タグ プロパティを別の配列のオブジェクトと比較しています。

これが私のコードです:

これを行うより良い方法はありますか?

tagプロパティは整数ではないため、文字列を比較する必要があることに注意してください。

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

objective-c - NSMutableDictionaryを介して列挙する-ループ内からオブジェクトプロパティにアクセスすることはできません

analyzedPxDictionary一連のPixelオブジェクト(作成したカスタムクラス)を含むNSMutableDictionaryがあります。特に、Pixelオブジェクトには。と呼ばれるNSArrayプロパティが含まれていますrgb。その配列には常に3つのNSNumberオブジェクトが含まれ、整数値はピクセルのrgb値に対応します。

私は現在、analyzedPxDictionary高速列挙を使用して列挙しようとしています。ただし、ループ内からPixelオブジェクトのプロパティにアクセスできないようです。rgbドット構文を使用してアクセスできるように、合成プロパティであると宣言しました。しかし、ループ内からそうしようとすると、プログラムがクラッシュし、次のようなエラーが発生します。

'-[NSCFString rgb]: unrecognized selector sent to instance 0xa90bb50'

そのエラーを生成するコードの例を次に示します。

printfを調べるために、その線にブレークポイントを設定してみましたpx。そのプロパティがNSArrayのインスタンスとして正しく記述されているrgb場合、1つとしてリストされていますが、オブジェクトが含まれていないようです。

rgb正しく初期化していると思います。説明するために、次のコードを検討してください。

これにより、正しい値がコンソールに正常に出力されます。

では、なぜループrgb内からプロパティにアクセスできないのですか?forin

0 投票する
2 に答える
5165 参照

objective-c - nil オブジェクトの高速列挙

ここで何が起こるべきですか?安全ですか?

より具体的には、これを行う必要がありますか:

それともこれでいいですか?:

0 投票する
5 に答える
12170 参照

objective-c - 高速列挙でインデックスを追跡する

高速列挙を使用するときに現在のオブジェクトのインデックスを取得したい、つまり