問題タブ [nspredicate]
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.
iphone - iPhone SDKコアデータ:nilの関係を持つすべてのエンティティを取得しますか?
BooksとAuthorsを含むコアデータプロジェクトがあります。データモデルでは、著者は本と多くの関係があり、本は著者と1対1の関係があります。著者がいないすべての本を引っ張ろうとしています。どのように試しても、結果は返されません。私の述語では、= NIL、== nil、==NILも試しました。任意の提案をいただければ幸いです。
iphone - サブクラス化されたNSManagedObjectsを使用したコアデータ述語
AUDIOクラスがあります。このオーディオには、SOUND_AサブクラスとSOUND_Bサブクラスがあります。これはすべて正しく行われ、正常に機能しています。
別のモデルがあり、それをPLAYLIST_JOINと呼びます。これには、(現実の世界では)SOUND_AとSOUND_Bを含めることができるため、AUDIOとPLAYLISTの関係を与えます。
これはすべてアプリで機能します。
私が今抱えている問題は、NSPredicateを使用してPLAYLIST_JOINテーブルをクエリすることです。私がやりたいのは、述語に2つのキーを指定して、正確なPLAYLIST_JOINアイテムを見つけることです。
と
主な問題は、テーブルにはsound_a
andsound_b
が格納されていないが、格納されているため、audio
この構文を使用できないことです。同じ_id属性名を使用するようにsound_aとsound_bを再編成するオプションがないので、これを行うにはどうすればよいですか?
メソッドを述語に渡すことはできますか?このようなもの:
[audio getID] = %@ && playlist_id = %@
cocoa - NSPredicate の適用中に NSDictionary 値をキャストしますか?
NSDictionary オブジェクトの配列があります。これらの辞書は、JSON ファイルから解析されます。NSDictionary のすべての値オブジェクトは NSString 型で、1 つのキーは「distanceInMeters」と呼ばれます。
NSPredicate を使用してこれらの配列をフィルタリングすることを計画していたので、次のように始めました。
「distanceInMeters」キーの値が NSNumber の場合、これはうまくいくと思いますが、JSON ファイルから取得したため、すべてが NSStrings です。上記のエラーは次のとおりです:******* -[NSCFNumber length]: unrecognized selector sent to instance 0x3936f00***
NSString を NSNumber として扱おうとしたので、これは理にかなっています。
値がフィルタリングされている間に辞書から値をキャストする方法はありますか、それともこれを回避するまったく別の方法ですか?
誰かが私を助けてくれることを願っています:)
iphone - コアデータ多対多の関係NSPredicate
のような多対多の関係を持つデータモデルがありますEntityA <-->> EntityB <<--> EntityC
。EntityA
以前はさまざまな検索条件でクエリを実行しNSCompoundPredicate
、の配列で使用していましたNSPredicate
。EntityA
述語の1つで、を使用してクエリを実行したかったEntityC
。以下を使ってみましたSUBQUERY
が、うまくいきませんでした。
そして、私は次の例外を受け取りました、
足りないものはありますか?助けていただければ幸いです。
サラ
iphone - Key-Path 値に NSPredicate を使用する方法
配列に NSPredicate を使用するのは、filteredArrayUsingPredicate: を使用するとかなり簡単です。
これはキーパス値に対してどのように行われますか? つまり、オブジェクトの配列があります (この場合、オブジェクトは同じ型です)。各オブジェクトには、name という名前のインスタンス変数があります。ドキュメントによると、次のことを行うように指示されています。
それはfilteredArrayUsingPredicateでも使用されていますか? People オブジェクトの配列がある場合はどうなりますか? それは私が使用することを意味します:
その部門ではドキュメンテーションが少し不足しています。
単一の Person オブジェクトに対して Predicate を使用することもできますか? Person.name のようなものに [cd] 'Foo' が含まれていますか? それはどのように行われますか?
iphone - iPhone OS:NSPredicateNsfetchrequestとコアデータを使用してランダムエンティティインスタンスを取得する
いくつかのランダムなインスタンスをフェッチしたい管理対象オブジェクトの大規模なコレクションがあるアプリで作業しています。
私の質問は、NSPredicateとNSFetchRequestを使用して複数のオブジェクトをランダムに返す方法はありますか?
データモデラーを使用してエンティティにNSFetchRequestを実際に追加できることを確認しました。これを使用してランダムフェッチを実行する方法はありますか?
また、乱数ジェネレーターの境界を設定できるように、テーブルの「カウント」を決定するための最良の方法は何でしょうか。
詳細が必要な場合はお知らせください。
ありがとう!
ニック
iphone - NSPredicate の単語境界 (\b) により、NSFetchRequest が管理オブジェクトを返さない
iPhone で sqlite ストアを使用してコア データを使用する....コミックの issue# を含む文字列を持つコミック ブックのイメージ エンティティがたくさんあります。たとえば、次のようになります。image.imageTitle = @"Issue 12: Special Edition";
UI の一部では、ユーザーは問題番号を入力して次の問題にジャンプできます。このための私の最初のコードは sloooooooow でした。これは、imageAtIndex:
Core Data に対して一度に 1 つのオブジェクトを照会するためです。数百の問題を超えると、最初のループを通過するだけで 40 秒以上かかる場合があります。
スローコード:
より効率的なソリューションを期待して、次のように Core Data に対して直接クエリを実行することにしました。
Predicate Programming GuideとICU regex specsの間で、\b が 12 の検索で 120、121、122 などを返すのを防ぐのに役立つと考えました。代わりに、ストアからは何も返されません!
一方、単語の境界を省略して代わりに を検索するとstringWithFormat:@"%@",issueNumber
、12 から 129 から 412 まで、多数の管理対象オブジェクトが返されます。
この時点で、Core Data のConstraints and Limitationsの 1 つに遭遇したと推測できます。そうでない場合、私は何を間違っていますか? もしそうなら、完全一致と単一フェッチの速度の両方を提供する回避策はありますか?
iphone - 2 つの配列を NSPredicate (cocoa) と比較する
私は2つのプロパティを持つNSObjectを持っています
エンティティのオブジェクトを含む 2 つの配列があり、nid でこれら 2 つを述語と比較したい
2つの配列には両方とも値2のnidがあるため、出力は
したがって、一致する nid のみを持つ配列を生成できます
iphone - ANDコアデータ関係のNSPedicate
OR を使用すると問題なく動作しますが、NSPredicate を AND と組み合わせるのに問題があります。
医師と患者の 2 つのエンティティを想像してください。医師には多くの患者がいて、患者には多くの医師がいます。たとえば、person1 と person2 の両方を患者として持つ医師を探したいとします。これが機能することを期待していましたが、何も返されません。
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"ANY 患者は 'person1&&person2' に一致します"];
&& を || に変更すると、予想どおり、person1 または person2 を持つすべての医師が取得されます。
よろしくお願いします。
iphone - 既存のコア データ エンティティとの一意化
Core Data を使用して、大量 (1000 秒) のアイテムを保存しています。各アイテムのプロパティのペアは一意性を判断するために使用されるため、新しいアイテムが入ってくると、それを挿入する前に既存のアイテムと比較します。着信データは RSS フィードの形式であるため、多くの重複があり、一意化ステップのコストは O(N^2) であり、かなりの量になっています。
現在、(可能性のある) 新しいアイテムのリストを反復処理する前に、既存のアイテムのセットを作成しています。私の理論では、最初の反復ですべての項目に障害が発生し、記憶に追われていないと仮定すると、これらの項目のほとんどは反復の過程で常駐したままになるというものです。
私のオプションは次のように表示されます。
- 一意化、すべての「新しい」アイテムの繰り返し、およびすべての既存のアイテムとの比較に文字列比較を使用します (現在のアプローチ)
- 述語を使用して、「新しい」アイテムのプロパティに対して既存のアイテムのセットをフィルター処理します。
- Core Data で述語を使用して、各「新しい」アイテムの一意性を判断します (既存のアイテムのセットを取得する必要はありません)。
オプション 3 は、現在のアプローチよりも高速になる可能性がありますか? もっと良い方法を知っていますか?