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

swift - SwiftUI ForEach を使用して NSOrderedSet から文字列値を取得する

この質問/回答を使用して、ForEach を使用して、CoreData の 1 対多の関係から作成された NSOrderedSet を使用できますが、Core Data エンティティに格納されている文字列属性にアクセスできないようです。

Client と SessionNote の 2 つの CoreData エンティティがあります。クライアントは多数の SessionNotes、clientNotes の NSOrderedSet を持つことができ、SessionNote は 1 つのクライアントしか持つことができません。

クライアント + CoreDataClass.swift:

クライアント + CoreDataProperties.swift:

SessionNote+CoreDataClass.swift:

SessionNote+CoreDataProperties.swift:

ここにClientDetailView.swiftがあります:

試しましText("\(note.noteText ?? "")")たが、次のエラーがスローされます。

タイプ 'AnyHashable' の値にメンバー 'noteText' がありません

試しText("\(self.selectedClient.clientNotes!.value(forKeyPath: \SessionNote.noteText))")てみると、次のエラーがスローされます。

具象型のみがプロトコルに準拠できるため、プロトコル型 'Any' は '_FormatSpecifiable' に準拠できません

SessionNote noteTextエンティティごとに異なる文字列値を表示する方法はありますか?

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

swift - 別の NSOrderedSet で指定された順序に基づいて NSOrdered Set を並べ替えます

したがって、2 つの順序付きセットがあり、一方の順序付きセットには基本的に辞書のリストがあり、もう一方の順序付きセットには辞書内の特定の値に対応する文字列があるように構造化されています。例を使用して説明しましょう。

OrderedSetA = [["key1": "test", "key2": "A"], ["key1": "test2", "key2": "B"], ["key1": "test3", "key2":"C"], ["key1": "test4", "key2": "E"]]
OrderedSetB = ["B","G","H", "A", "E", "D", "C", "F", "J", "K"]

key2したがって、基本的には、A にない B の値を無視しながら、OrderedSet B に対応する文字列に指定された順序に基づいて OrderedSetA の要素を再配置したいと考えています。たとえば、このシナリオでは、探しているのは次のようなものです:

OrderedSetC = [["key1": "test2", "key2": "B"], ["key1": "test1", "key2": "A"], ["key1": "test4", "key2":"E"], ["key1": "test3", "key2": "C"]]

これが私がこれまでに試したことです:

let orderedSetC = orderedSetA.filter {OrderedSetB.contains(($0 as AnyObject).key2)}

そして、ここで何が起こるかというと、同じものを返すだけです.OrderedSetAにないOrderedSetBに基づいてフィルタリングしていると思いますが、並べ替え/並べ替えは行われません。

これを処理する最も適切で効果的なSwift 5ベースの方法は何ですか?

ありがとう!