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

objective-c - NSFastEnumeration が速いのはなぜですか?

整数カウンターを使用して要素をループするNSFastEnumerationよりも (実行時のパフォーマンスのように) 本当に速いか、(配列の場合) 使用するかを知っている人はいますか?NSEnumerator

それが実際に速い場合、どのようにしてその速度を達成するのでしょうか?

それとも、「高速」とは、実際には反復コードの記述が高速であることを指しているのでしょうか?

前もって感謝します。

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

objective-c - さまざまなタイプのNSArrayでの高速列挙

私はここにこの質問(およびSOに関する他の質問)があり、Objective-Cコレクションと高速列挙に関するAppleドキュメントがあります。明確にされていないのはNSArray、さまざまなタイプが入力され、ループが次のように作成されているかどうかです。

ここで正確に何が起こりますか?ループは、そうでないものをスキップしNSStringますか?たとえば、(引数のために)aUIViewが配列内にある場合、ループがそのアイテムに遭遇するとどうなりますか?

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

objective-c - キー順の NSDictionary インスタンスの高速列挙

概要

  • 高速列挙を使用して NSDictionary インスタンスを反復処理しています
  • キーの昇順に基づいて NSDictionary インスタンスが列挙されることを期待していましたが、そうではないようです

私がしたいこと:

  • 高速列挙を使用してキーの昇順で NSDictionary インスタンスを反復できるようにしたい

注:期待される出力と実際の出力を確認してください

質問

  1. 実装を間違えていますか?
  2. NSDictionary の高速列挙は、キーに基づく順序付けを保証しますか?
  3. そうでない場合、これに対する回避策はありますが、高速列挙を使用しますか?

期待される出力

実際の出力

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

ios - NSPredicatesを使用して、配列内のオブジェクトをディクショナリの値に置き換えることはできますか?

私がこのようなNSDictionaryを持っていた場合:

そしてこのような配列:

たとえば、@” -60”、@” 12.6”、@” 100”、@ "+"、@”。3”、nilで構成される配列programWithVariableValuesを返すコードはどのようになりますか?

(配列内で見つかった変数をそれらのvalueforkeyに置き換えます)

NSPredicateを利用するのに良い場所でしょうか?または単に高速列挙?または、他の何か?

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

objective-c - このコードはランダムにアプリをクラッシュさせますか?

ご覧のとおり、このメソッドは画面上にあるオブジェクトを更新します。オブジェクトが画面上にない場合は、オブジェクトが作成され、scrollView サブビュー階層に追加されます。今私の懸念は、スクロールビューのサブビュー階層を列挙しながら変更していることです。これにより、最終的にアプリがクラッシュしますか?

はいの場合、上記のコードを安全に変更して同じ機能を実現するにはどうすればよいですか?

ありがとう!

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

objective-c - Objective C で for-in ループを使用して特定の型のオブジェクトにアクセスする

で for-in ループを実行していNSMutableArrayます。配列には ClassAのインスタンスがあり、そのうちのいくつかは実際にはそのサブクラスのインスタンスですB

したがって、 subclass のメンバーのみが必要な場合は、ループ本体内の条件でB取得した各オブジェクトのクラスをチェックしています。if

このようなことを書く代わりに、

私はこのようなことをすることができますか?

同じ結果が得られますか?

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

objective-c - ObjectiveCの高速列挙トラブル

高速列挙を使用してプレイリストにあるすべての曲を印刷しようとしていますが、間違っているようです。誰かが私を助けてくれますか?私はこのようなSongクラスを定義しました:

displaySong関数は次のようになります:

そして今、PlayListクラスへ:

誰かが私のコードが機能しない理由を私に説明してもらえますか?
そして、どのdisplayPlaylistメソッドが優れていますか?

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

objective-c - 文字列リテラルの NSArray の高速列挙

ARC を使用して...

範囲外のインデックス エラーが発生します。

*** -[__NSArrayM objectAtIndex:]: インデックス 0 が空の配列の範囲を超えています

私が犯した骨頭の間違いは何ですか?

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

.net - 大規模なネットワーク ファイル システムで継承可能な ACE をすばやく設定する

ネットワーク ファイル システムの ACL について質問があります。

基本的に、その下に 100,000 以上のファイルとフォルダー オブジェクトがある可能性のあるトップ レベルのフォルダー オブジェクトにアクセス許可を設定したいと考えています。すべてのサブフォルダーとサブファイルを介して権限を継承できるようにしたい (IE 'ファイル、フォルダー、およびサブフォルダーに適用' はtrue )。

既存の継承可能なアクセス許可を破棄したくありません (IE ' Replace all child object permissions with inheritable permissions from this object ' はfalse )。

そのため、Set-ACL、SetACL.exe、XCACLS.vbs を実行したり、Windows GUI を使用したりすると、プロセスが完了するまでに非常に長い時間がかかります。これは明らかにサブ ディレクトリのサイズが大きいためです。

私は今これに慣れていますが、

知りたかったのですが、これはなぜですか

結局のところ、1 つのフォルダー オブジェクトに 1 つの ACE しか書いていないのではないでしょうか?

  • ディレクトリをたどっているのではありません。
  • サブファイルとフォルダーの個々の ACL を変更しているわけではありません (そうは思いません)。と
  • 私は権限を置き換えていません

サブフォルダー/ファイルオブジェクトにアクセスした場合、明示的なACEをチェックしてアクセス許可があるかどうかを確認し、アクセス許可がない場合は、(親フォルダーオブジェクトから)継承可能なアクセス許可を確認すると想定しました。アクセスできる可能性があります。

では、継承可能なアクセス許可を設定すると、技術的には最上位で 1 つの ACE のみを設定しているにもかかわらず、新しい個別の ACE がすべてのサブファイルとフォルダーに書き込まれるのでしょうか?

最上位に ACE を設定し、コマンドを使用せずにサブ ディレクトリ全体を列挙する方法はありますか? 大量のファイルとフォルダーでこれを迅速かつ効率的に行うことを検討しています。

これが理にかなっていることを願っています。提案をお待ちしております。

リス。

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

ios - 新しい CGPoint 値を配列内の CGPoint 値と比較します

ランダムな位置で多数の円を生成しています。私が防ぎたいのは、円が互いに重ならないようにすることです。そのため、新しく生成された CGPoint 値を配列内の値と比較し、値が CGPoints のいずれかの半径領域にある場合は新しい値を生成したいと考えています。

重複したものを除いて、ほとんどのものを手に入れました。私が試したことの一部をコメントアウトしましたが、それは実際には機能しません(論理の欠陥)。CGPoint の個々の値を反復して比較する方法がわかりません。

更新: コードをもう少し変更し、CGPoint がオーバーラップするかどうかを確認するチェックを追加しました。問題は、次のようなことを試したいときです

無限ループに陥り続けます。