問題タブ [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.
objective-c - 異なるタイプのオブジェクトを含む配列の高速列挙
異なるクラス (NSString、NSMutableString、NSProcessInfo、NSURL、NSMutableDictionary など) のオブジェクトを追加した NSMutableArray がある場合、この配列を高速に列挙したいので、次のことを試しました。
Xcodeで警告が表示されます
この警告を回避するにはどうすればよいですか?
objective-c - 高速列挙は悪い形式と見なされますか、それとも一般的に受け入れられますか?
不思議なことに、うまく機能しているように見えますが、一般的に受け入れられているコーディング手法を使用していることを確認し、悪い習慣に陥らないようにしたいと考えています.
ありがとう、
ニック
iphone - アプリケーションが高速列挙ループに入っていない
多くのデバッグの結果、このコードは高速列挙ループを無視し、やみくもに最後までジャンプしていると判断しました。
コンソールは「注釈列挙ループに入る」と「初期化」を出力しますが、「ループ内」を出力しないため、列挙ループを完全にバイパスしているように見えます。私は何が間違っているのですか?
iphone - NSDictionary の高速列挙が失敗し、「[Waypoint countByEnumeratingWithState:objects:count:]: 認識されないセレクターがインスタンスに送信されました ...」
キーが NSValues に変換された CGPoints であり、オブジェクトが UIColors である NSDictionary オブジェクトにデータがあります。辞書からオブジェクトを返すために使用しているメソッドは次のとおりです。
これは getTemperatureColorMap メソッドで、同じクラス (Weather) に実装されています。
getTemperatureColor2 を for ループ (すべてのウェイポイントを通過する) で呼び出します。これはすべて drawRect メソッドにあります。ウェイポイントには気象オブジェクトが含まれています。
ビューが読み込まれると、drawRect メソッドが 2 回呼び出されます (効果のためにこれが必要です)。1 回目はすべて問題ありませんが、2 回目はコードが for ループの高速列挙に到達するとすぐに例外が発生します。
Waypoint は NSDictionary であるため、エラーがどのように発生するのかわかりません。また、繰り返しが失敗するために drawRect をもう一度呼び出す必要がある理由がまったくわかりません。
objective-c - Objective-Cでの高速列挙は、反復の順序を保証しますか?
配列の最初から最後まで順番に進むことを期待できますか?これに関するドキュメントには何も見つかりません。
すなわちです
常に同じように印刷します
iphone - Fast Enumerationがテキスト出力を台無しにしていますか?
ここでは、NSDictionaryオブジェクトの配列を反復処理しています(EXCELLENT MapQuest方向APIの解析されたJSON応答内)。UIWebViewに配置するHTML文字列を作成したいと思います。
私のコードは言う:
directionOutput(NSMutableString)のコンテンツには、のすべての値が含まれ[leg valueForKey:@"narrative"]
、括弧で囲まれ、ハイフン、括弧で囲まれたすべての値が続きます[leg valueForKey:@"distance"]
。だから私はそのNSLog呼び出しを入れました...そして私はそこに同じものを手に入れます!for()は、反復しながら出力値をバッチ処理し、出力を1回だけ出力しているようです。
これを行わずに、実際に必要なことを実行するにはどうすればよいですか。これは、反復するときの反復出力です。
NSLogが取得するものは次のとおりです。はい、NSNumberFormatterを理解する必要があることはわかっています。;-)
objective-c - NSArrayを反復処理する
誰かが私のコードをここで修正するのを手伝ってもらえますか?NSStringを含む配列全体を単純に反復処理してNSIntegerに変換し、NSInteger変数に割り当てようとしています。
iphone - Objective c "for each" (高速列挙) -- コレクションの評価?
実験から、コレクション式は 1 回だけ評価されるようです。次の例を検討してください。
出力は次のとおりです。
[self fcn] が 1 回だけ呼び出されることを示します。
これが(単に観察されたものではなく)指定された動作であることを誰かが確認できますか?
私が念頭に置いているのは、次のようなことをすることです:
これの代わりに:
考え?
iphone - Objective C:高速列挙を使用するときの最後のオブジェクト?
高速列挙を使用しているときに、配列の最後のオブジェクトに到達したことを知るための最良の方法は何ですか?intをインクリメントしてから、それを配列の長さと比較するよりも良い方法はありますか?
objective-c - コレクション内のオブジェクトの型がわかっている場合、高速列挙を使用するときに反復変数の型を指定する必要がありますか?
たとえば、一連のオブジェクトNSArray
を含む があるとします。NSString
これを行うことの長所と短所は何ですか:
対: