問題タブ [nsenumerator]

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 に答える
835 参照

objective-c - NSEnumerator で次のオブジェクトを監視する

NSTextView から取得したテキスト行を含む NSEnumerator オブジェクトがあり、次のように解析されます。

次のように for サイクル内の行を処理しています。

これは問題なく動作しますが、現在のオブジェクトを処理しながら次のオブジェクトを監視する必要があります。現在のサイクルを中断せずにこれを行う最善の方法は何でしょうか? (現在のサイクル内で)このようなことをすると、うまくいきません:

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

xcode4 - 配列内の次の項目を表示する NSEnumerator を取得できません

私はObjective-Cを初めて使用し、これをオンラインで数週間調査しました。ほぼすべての例はすべてのサイトで同じであり、Xcode 4 アプリのコードに統合する方法が完全にはわかりません。

どこでも見られる例は次のとおりです。

NSEnumerator* theEnum = [some_array objectEnumerator]; id obj; or id some_object = NULL; while(obj = [theEnum nextObject]) { //do something...

id some_object = NULL;/ id obj; が何であるかをよりよく理解できればと思います。自分でそれを理解できることを表します。

私のコードには 3 つの配列があります。すべてのオブジェクトが表示されるまで、ユーザーが [次へ] ボタンをクリックするたびに、UILabel フィールドの各配列に 1 つのオブジェクトを表示できるようにしたいと考えています。

NSArray2 = ジョン、ジル、ジョシュ NSArray3 = 男の子、女の子、男の子

次のボタンを押すと、1、ジョン、男の子が表示されます。次に会うときは、2 人のジルと女の子、最後に 3 人のジョシュと男の子です。

以下は基本的な例であり、実際のコードではありません。

ありがとう

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

iphone - touchesShouldBegin の NSSet: UIScrollView の NSString は 1 つのみです

UIScrollView のサブクラスがあり、デリゲートでもあります。

次のプロトコル関数を呼び出した場合:

NSLog が示している唯一のものは次のとおりです。

問題は、NSSet の内容が 1 つの大きな NSString として表示されることです。objectEnumerator から allObjects を要求すると、NSArray 内のオブジェクトが 1 つだけ取得されます。NSLog とまったく同じオブジェクト (NSString) が表示されています。

私が何か間違ったことをしているのか、それとも NSSet がただ 1 つの NSString を与えているのが普通ではないのか、誰か教えてください。

ありがとうございました!

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

objective-c - NSDictionary オブジェクトからの通貨のカウント

基本的な考え方は、金銭的価値を含む NSDictionary オブジェクトを持つ .plists でいっぱいのディレクトリを反復処理することです。

質問

Current Valueすべてのディレクトリ コンテンツを反復処理して、すべての " " オブジェクトを抽出し、それらを合計して合計金額を取得するにはどうすればよいですか?

電流出力

望ましい出力

解決

ソリューションの出力

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

objective-c - (anObject = [enumerator nextObject] は、配列オブジェクトの逆順を返します

jsonWeb サービスから応答を受け取り、それをログに記録して適切な順序で取得しますが、配列内のデータの解析を開始するNSEnumeratorと、id anObject; を使用して適用します。

anObjectをログに記録し、配列をまったく逆の順序で取得しますが、これについて考えている人はいますか、または列挙子を使用してオブジェクトを正しい順序で取得して解析するための回避策はありますか? このフォーラムで検索した後に投稿しましたが、このトピックの iOS については何もありません。

事前に感謝します。

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

objective-c - NSFastEnumeration に準拠する任意のセットを列挙する方法

状況に応じて、NSArray または NSOrderedSet のいずれかになる可能性のある一連のオブジェクトを列挙しようとしています。どちらも NSFastEnumeration に準拠しているため、これが機能すると予想されます。

ただし、次のコンパイラ エラーが発生します。

セレクター 'objectEnumerator' の既知のインスタンス メソッドはありません。

ここに構文エラーがあると思われます。これまで id 構造をあまり扱ったことがありません。セットの 1 つまたは両方を共通のクラスに変換することもできますが、可能であれば、ここで何が起こっているのかをよりよく理解したいと考えています。

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

objective-c - plist からデータを読み取るときに 2 番目の値 (Null) になるのはなぜですか?

この問題は、makegameswith.us Web サイトとその Peeved Penguin プロジェクトからのものです。GameLayer.mm ではなく plist からレベル データを読み取るように変更しようとしています。最初のスプライト データは期待どおりに読み込まれ、while ループの 2 番目のパスはスプライト名に対して (Null) を返します。plist を確認しましたが、両方のスプライトのファイル名は「tallblock」である必要があります。

関連するコードのスニペットは次のとおりです。

この問題を公式フォーラムに投稿しましたが、何のアドバイスも受けていません。デバッガーで何度もコードをステップ実行しましたが、パス 1 でトールブロックが検出され、パス 2 で検出されない理由がわかりません。

plistファイルのスクリーンショットを撮りました。2 番目のスプライトでコードが失敗する理由はありますか?

Plistのスクリーンショット

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

ios - フィードからオブジェクトが削除された場合、Core Data からオブジェクトを削除します

フィード内のディクショナリ オブジェクトとコア データ内の並べ替えられたエンティティとの間の次の相関関係を考慮してください。

フィードを列挙しているとき、エンティティで A の[stringForKey:@"name"]isEqualToかどうかを確認A.nameします。一致する場合は、エンティティを更新します。そうでない場合は、新しいエンティティを CoreData に挿入します。

これは、更新と挿入には問題なく機能しますが、削除には機能しません。オブジェクト C がフィードから削除されたとします。

フィードの "D" に到達すると、CoreData のオブジェクト "C" が一致しないことがわかり、新しいオブジェクト D が作成されます。したがって、2 つの問題があります。2 つの "D" オブジェクトがあり、オブジェクト " C" は CoreData から削除されません。

だから私はこれで終わりたいと思っています:

私が現在得ているのはこれです:

これは一般的な問題に違いないので、コア データからエンティティを削除するタイミングを決定するためのベスト プラクティスは何なのか疑問に思っています。

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

objective-c - NSEnumerator::nextObject での NSZombie 例外 (または、nextObject がそのクエリに触れているか?)

わかりました、私は 12 年間コーディングを行ってきましたが、Obj-C (特にメモリ管理) の経験が比較的浅く、驚くべきエラーが発生しています。

コードブロックは次のとおりです。

_NSZombie_NSExceptionで示される行でスローされています>>。わかりました、これは (常に?) dealloced されたオブジェクトにアクセスしていることを意味します。私が得られないのは、この行でエラーが発生している理由です。node私が得ているものが編集されたものである場合dealloc、次の行でエラーが発生すると予想されます(たとえば、にアクセスしたときnode.body)。オブジェクト自体がどのように問題を引き起こしているのかわかりません。NSEnumeratorそれは直前に作成されたものであり、それがセットであった場合は のself.containedの行で死んでいるはずですよね?

では、nextObject取得したオブジェクト (つまり ) に対して実際にメソッドを呼び出すnodeと、例外がスローされるのでしょうか? それはおそらくそれを説明するでしょうが、私はこれが当てはまるとは思わなかったでしょう. または、ゾンビである可能性が高いオブジェクトを誰か教えてもらえますか?

これは非常に断続的に発生します。開発の最後の 1 週間程度で 2 回発生したため、ゾンビ インストゥルメントを実行してもトラップされる可能性は低いでしょう。