問題タブ [nsorderedset]

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 投票する
3 に答える
8911 参照

objective-c - セットからの配列:NSOrderedSetが配列を使用するのにNSSetがallObjectsを使用するのはなぜですか?

Foundationでは、セットをに変換する場合はNSArray、次を使用できます。

  • -[NSSet allObjects]
  • -[NSOrderedSet array]

なぜこれらは違うのですか?

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

core-data - NSOrderedSet からオブジェクトを追加/削除するためのカスタム NSManagedObject クラス

私は Cocoa を学んでいて、Aaron Hillegass の本 (Chapter 32 Core Data Relationships) の例に従っていますが、自分のアプリでは動作しません。

私は、子と対多の関係を持つ親オブジェクトで構成されるコアデータモデルを持っていますが、私のものは、基本的なNSMutableSetである本とは異なり、順序付きセットです。

親と子の各オブジェクトには NSArrayController が関連付けられており、Interface Builder でドキュメントベースのアプリを開発しました。選択した親 (この場合はパーセプトロンと呼ばれます) から子オブジェクト (私の場合はパーセプトロンと呼ばれます) を追加/削除するボタンとバインディングを備えています。層)。それはすべて働いています。

ここで、子が追加または削除されるたびに独自のコーディングを行えるように、add メソッドと remove メソッドをインターセプトしたいと考えています。

Hillegass の本では、彼は NSManagedObjects サブクラスを作成し、コードに addEmployeesObject: および removeEmployeesObject: メソッドを実装することでこれを行っています。それが私が試したことです。

XCode エディターによって作成された子サブクラスは次のとおりです。

そして、テキストブックに従って Layer.m に実装した 2 つのメソッドを次に示します。

NSLogs を入れたので、それらが呼び出されていないことは確かです。パーセプトロン オブジェクトを追加/削除しても、コンソールには何も表示されません。

add: remove: メッセージを受け取ったとき、ArrayController は何をしますか? addObject/removeObject メッセージをセットに直接送信していますか? 教科書の例で、子を削除するために親オブジェクトにメッセージを送信するのはなぜですか? ここでそれが起こらないのはなぜですか?これをデバッグして調べる方法はありますか?

ありがとう

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

cocoa - NSOrderedSetによるNSArrayの並べ替え

私はNSFetchRequest次の述語でを行っています:

...ここindexesで、NSOrderedSetは数字です。

これにより、指定されたインデックスを持つ「ランダムにソートされた」オブジェクトの配列が得られます。オブジェクトが順序セットと同じ順序で表示されるように、これを並べ替える必要があります。

これを行うための最も効率的な方法は何でしょうか?

アップデート

マーティンRの回答に基づくカテゴリは次のとおりです。

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

iphone - NSOrderedSet の順序を使用して NSFetchedResultsController の結果をソートする方法

NSOrderedSets は、テーブル内のオブジェクトの順序を保存します。NSOrderedSet であるプロパティを使用して NSManagedObject サブクラス インスタンスにアクセスすると、順序が正しくなります。

ただし、NSFetchRequest を作成するときに NSSortDescriptor を使用してその注文にアクセスする方法はないようです。

生の SQLite DB から、その順序は という名前のフィールドに格納されているようですZ_FOK_<relationship name>。データは利用可能ですが、コア データ API からは見えないようです。

NSOrderedSet で指定された順序で結果を返すために SQLite DB で動作する NSSortDescriptor を記述する方法を知っている人はいますか?


アップデート

関連する質問: NSFetchedResultsController と NSOrderedSet の関係

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

ios - NSManagedObject 認識されないセレクターがインスタンスに送信されました

次のような Core Data モデルがあります。ここで、子は対多の関係です。

.h

.m

次に、次を使用して設定しようとします。

しかし、その最後の行で、次のエラーが発生します。

NSCFConstantString managedObjectContext]: インスタンス 0xe8fa0 に送信された認識されないセレクター

コンパイラに変更NSOrderedSetすると、 .NSSetNSOrderedSet

セットを に割り当てるにはどうすればよいNSManagedObjectですか?

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

ios - CoreFoundation トラップ エラー "Thread1:EXC_BREAKPOINT (code=EXC_ARM_BREAKPOINT, subcode=0xdefe)"

私はあなたの助けが必要です 私はこの苛立たしい「ランダム」エラーを持っています.

アプリは 1 つと 2 つ目のコントローラーでMapviewcontroller構成されます。collectionview

2 番目のコントローラーからマップに戻ると、「trap」行でこのエラーが発生してアプリが突然クラッシュすることがあります。クラッシュ レポートは、私のコード行を指していません。

EXC_BREAKPOINT (コード=EXC_ARM_BREAKPOINT、サブコード=0xdefe)

ここに画像の説明を入力

同じアプリの同じバージョンをビルドして数日間スムーズに実行できるため、「ランダムエラー」と言いましたが、突然スタックしました。アプリの制御を取り戻す唯一の方法は、iPad から手動で削除して再構築することです。

参考までに、アプリは Coredata を使用します。

何か案は?エラーの原因を特定する方法はありますか?

どんな助けでも大歓迎です、ありがとう!

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

ios - nsmutablearray に一意のオブジェクトを追加するには?

内部に NSStrings を含む NSObject があります。一意の obj.name を持つオブジェクトを NSMutableArray にのみ追加するにはどうすればよいですか? NSOrderedSet を試しましたが、内部に NSString を含むオブジェクトではなく、配列に NSString を追加した場合にのみ機能します。

例。

2 つの MyObject が同じ名前にならないようにするにはどうすればよいですか?