問題タブ [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.
objective-c - NSPredicate を使用して文字列が別の文字列と等しいかどうかを判断する
メソッドで返されるNSArray
CalEvents があり[CalCalendarStore eventPredicateWithStartDate]
ます。返されたイベントから、イベントのタイトル == @"on call"
(大文字と小文字を区別しない) のもののみを保持しようとしています。
タイトルに次のコードが含まれる @"on call"
イベントを配列に保持できます (ここで、「イベント」は が入力された「NSArray」ですCalEvents
)。
次のような述語フォーマット文字列を使用してみました。
@"SELF.title == 'on call'"
しかし、これはうまくいかないようです。
これを行う簡単な方法はありますか?
iphone - 特定の NSManagedObject を除外するための NSPredicate 構文
多くのエンティティが特定の NSEntityDescription の一意のインスタンスであるコア データ ストアがあります。現在、特定の説明の新しいエンティティを作成してこれを行っています。次に、次のようにします。
これは機能しますが、反復ではなく NSPredicate で != を実行できるはずですが、それを実行するための正しい述語構文がわかりません。誰でも私を啓発できますか?
iphone - Dealloc'd PredicateがクラッシュするiPhoneアプリ!
はじめに、これは数日前に行われた問い合わせのフォローアップです: https ://stackoverflow.com/questions/2981803/iphone-app-crashes-when-merging-managed-object-contexts
短いバージョン:EXC_BAD_ACCESSがアプリをクラッシュさせ、ゾンビモードにより、FetchedResultsControllerに埋め込まれたフェッチリクエストに埋め込まれた述語が原因であることが明らかになりました。オブジェクト内のオブジェクトは、明示的なコマンドなしでどのように解放されますか?
ロングバージョン:アプリケーション構造プラットフォームビューコントローラー->ゲームビューコントローラー(プラットフォームの選択に基づく)->ゲームビューコントローラーの追加
プラットフォームビューで行がクリックされると、そのプラットフォームのゲームビューにインスタンス変数が設定され、Games FetchedResultsControllerが通常の方法でフェッチリクエストを作成します。
このメソッドの最後で、fetchedResultsControllerの_fetch_request->_predicateメンバーがNSComparisonPredicateオブジェクトに設定されます。すべてが世界で順調です。
-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)sectionが呼び出されるまでに、_predicateはゾンビになり、テーブルがそれ自体を更新しようとすると、最終的にアプリケーションがクラッシュします。
私は多かれ少なかれ混乱しています。フェッチされた結果コントローラーまたはその一部をリリースしていません。割り当てが解除されるのは述語だけです。何か案は?
編集:テストとして、この行をFetchedResultsControllerメソッドに追加しました。
そして今はクラッシュしませんが、それはパッチのようで、私がすべきことではありません。
iphone - NSSetまたはNSArrayで、特定のプロパティに特定の値を持つオブジェクトを検索するにはどうすればよいですか?
NSSetまたはNSArrayで、特定のプロパティに特定の値を持つオブジェクトを検索するにはどうすればよいですか?
例:20個のオブジェクトを持つNSSetがあり、すべてのオブジェクトにtype
プロパティがあります。を持っている最初のオブジェクトを取得したい[theObject.type isEqualToString:@"standard"]
。
どういうわけか、この種のものに述語を使用することが可能だったのを覚えていますよね?
iphone - サブクエリ述語の LIKE[c] がこの名前と一致しないのはなぜですか?
Department と DepartmentInfo という 2 つのエンティティがあります。すべての部門には、1 つまたは複数の DepartmentInfo オブジェクトがあります。DepartmentInfo 内には、departmentName 属性があります。
特定の departmentName を持つすべての Department オブジェクトを取得したいと考えています。そのため、Department エンティティに対して NSFetchRequest を作成し、次のフェッチ リクエストを使用します。
動作しますが、LIKE[c] は動作しません! 正確な部門名と一致する必要があります。これを行うと、一致しなくなります。
ここで何が問題なのですか?
iphone - コアデータの「SQL インジェクション」を防ぐ方法は?
いくつかの反復でかなり複雑な述語を作成しており、述語で一致する値をすぐに提供したいと考えています。
それ以外の:
私はやってみたいです:
NSString *str = [NSString stringWithFormat:@"departmentName like[c] '%@'", departmentName]; [NSPredicate predicateWithFormat:str];
これはばかげた置換なので、ガベージに入って誤って述語を「ハッキング」する可能性があると思います。
その価値を「魔法のように引用」するものは何も見つかりませんでした。
理由は、複雑な述語を数回繰り返して作成する必要があるため、大きな述語文字列を作成する必要があるからです。テンプレートは SUBQUERY では機能しません。したがって、述語フォーマットの値の数に応じて 20 の異なる述語の初期化を行いたくないため、文字列ですぐに値を指定する必要があります。
iphone - NSLog の引数を動的に構築する方法は?
例: 多くの処理を行う複雑なメソッドがあり、最後に NSLog を使用してレポートを印刷したいと考えています。NSLog は、文字列と任意の数の引数を必要とします。したがって、ログに記録できるこれらの可能な値があるとしましょう。
あ
B
ハ
D
え
ふ
たとえば、C と D はログに記録されず、残りはすべてログに記録されることがあります。NSLog の値の引数を表す動的なものを構築するにはどうすればよいですか?
この質問に NSLog を選択したのは、NSPredicate と SUBQUERY の方が簡単だからです。NSMutableString と appendFormat:... を使用しているときに、NSPredicate フォーマット文字列を動的に構築することは不可能に思えます。常に述語のコンパイル エラーが発生します。NSPredicate は、提供されたフォーマット値で NSMutableString -appendFormat とは異なることをしていると思います。
したがって、NSPredicate に 1) 動的に作成された巨大な書式文字列 2) 動的に作成された巨大な引数の「リスト」を供給する方法があったとします。
それはクールだろう。
iphone - 2 つの配列の ID を一致させるために NSPredicate を使用する
こんにちは、おそらく簡単な質問がありますが、まだ処理できません。
- カテゴリ ID (12、23、56) を持つ配列を保持する Modelclass 'Location' があります。
- 次に、利用可能なすべてのカテゴリ ID (1、2、3、4、5、6、7、...) を含む配列があります。
- このすべてのカテゴリには ID があり、TableView に表示され、選択するかどうかを選択できます。
- 前述の Filter TableView でのフィルターの選択に基づいて表示する必要がある MapView (Annotation Class is Location) にマーカーのパンチを表示します。
リスト内の選択に基づいて、すべてのマーカーを削除して再度追加する「カテゴリによるフィルター」機能を実装する必要があります。
したがって、配列とロケーション モデルのフィルター ID を、TableView のすべてのフィルター ID を含む配列と比較する必要があります。これには次の関数を使用しました。
for (NSString *currKatId in currLocation.arrKatIds) {
} }
これがすべてをループする最も効果のない方法であることはわかっています。これに何らかの形で NSPredicate を使用したいのですが、これまで使用したことがなく、問題の例が見つかりません。
皆さんからのヒントはありますか?
よろしくm。
iphone - この NSPredicate が機能しないのはなぜですか?
私は非常に単純な NSPredicate を持っています:
これにより、theString == "p" の場合、配列の結果は 0 になります。
ただし、これを行うと:
予想どおり、100 を超える結果が得られます。
NSLog() で "theString" を確認しましたが、その値は正しいです。重大な秘密を見逃しているような気がします。おそらく、文字ではなく文字列を使用しているためでしょうか?
考え?
ios - NSDateが今日NSPredicateにあるかどうかを判断する
このサイトで複数の方法を試し、いくつかの提案を試しましたが、CoreData属性「dueDate」が「Today」と等しいかどうかを判断するにはどうすればよいですか。NSDateも特定の時間であることはわかっていますが、述語が次の場合に返されるようにします。 1日の時刻に関係なく、同じ日/月/年です。助言がありますか?