問題タブ [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.
c# - 巨大なディレクトリからファイルを効率的にランダムに列挙する
特定の検索パターン (*.txt など) を使用して、ディレクトリから再帰的にファイルを列挙できるようにしたいと考えています。ただし、いくつかの制約があります。
- メカニズムは非常に効率的でなければなりません。目標は、(IEnumerable を使用して) ファイルを 1 つずつ列挙することです。そのため、ファイルのリストが膨大な場合でも、1 つのファイルを処理するのに永遠にかかることはありません。
- 列挙はファイルをランダムに返す必要があるため、プログラムの 2 つのインスタンスがディレクトリを列挙しようとしても、両方が同じ順序でファイルを表示することはありません。
要件を考えると、DirectoryInfo.EnumerateFilesは有望に見えますが、2 番目の要件を満たしていません。パフォーマンスに関する考慮事項を取り除けば、ソリューションは簡単です (コレクション全体を取得し、アクセスする前にシーケンスをランダム化するだけです)。
誰かが .net 3.5/4.0 での C# 実装の可能な選択肢を提案できますか?
cocoa-touch - [NSOperationQueue操作]で列挙しても安全ですか?
高速列挙を介して、を介して列挙するのは安全[NSOperationQueue operations]
ですか?そのようです:
操作は非同期であり、別のスレッドで実行されるoperations
ため、いつでも変更される可能性があります(メインスレッドの実行中を含む)。高速列挙はこれを防ぎますか、それとも代わりに操作配列を使用する必要がcopy
ありますか?autorelease
ios - iOS で UITextFields を介して列挙する方法
サブビューを列挙してテキスト フィールドを見つける正しい方法はどれですか?
また
これが正しい言い回しではないことはわかっていますが、それが一番上の方法である場合、ビューからテキストフィールドにどのように「変換」するのですか?
objective-c - NSStringsを指定すると、高速列挙がNSNumbersをスキップしないのはなぜですか?
高速列挙の使い方は知っていると思いましたが、わからないことがあります。NSString
3つのオブジェクトと3つのオブジェクトを作成NSNumber
し、それらをNSMutableArray
:に配置するとします。
NSString
次に、次のように、すべてのオブジェクトで高速列挙を実行します。
コンソールでは、次の結果が得られます:
sのみをログに記録NSString
しましたが、配列内のすべてのオブジェクトの行を取得します。sも含めて、NSNumber
理由がわかりません。高速列挙は常に配列に含まれるすべてのオブジェクトを使用しますか?
iphone - 高速列挙の制限は何ですか?
間違っている場合は修正してください。
高速列挙を使用する場合:
新しいエントリを追加または削除することはできませんが、既存のエントリを変更することはできます。
新しいエントリを追加または削除することはできませんが、既存のエントリを変更することはできます。
新しいエントリを追加/削除したり、既存のエントリを変更したりすることはできません。
iphone - NSDictionary 内の配列を UITableViewCell サブビューに読み込む
以下の plist 辞書を UITableView のセルに読み込もうとしています。次のように、ArrayKey で示される配列に含まれる各文字列のサブビューを作成します。
ディクショナリを読み取るために高速列挙を使用しましたが、各配列の最初の文字列のみを正常に読み取ることができます。
サブビューのピースがありません。そして、高速列挙の NSLog を追加すると、出力に配列内のすべての文字列が表示されるのに、最初の文字列しか表示できない理由がわかりません (つまり、myString1 を 1 行に、myString2 を 2 行目に myString3 なしで)。
objective-c - この2倍の高速列挙のより良い解決策は?
配列をループして、この配列のオブジェクト タグ プロパティを別の配列のオブジェクトと比較しています。
これが私のコードです:
これを行うより良い方法はありますか?
tag
プロパティは整数ではないため、文字列を比較する必要があることに注意してください。
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
objective-c - nil オブジェクトの高速列挙
ここで何が起こるべきですか?安全ですか?
より具体的には、これを行う必要がありますか:
それともこれでいいですか?:
objective-c - 高速列挙でインデックスを追跡する
高速列挙を使用するときに現在のオブジェクトのインデックスを取得したい、つまり