2016-09-26 15 views
1

に一致していない取得:コアデータ - 要求の結果は、私は次のように動作していない理由としてはかなり混乱している述語

enter image description here

をデバッグコンソールで見ることができるように、newerContentAvailableの値があります私はこの値が1に設定されているオブジェクトのみを必要としているにもかかわらず、0になりました。しかし、それはとにかく結果に入りました。

はい、私はMagicalRecordを使用していますが、疑わしいことにはこれと関係があります。これは古くて成熟したコードベースであり、MR_findAllWithPredicate:...はそのデータモデルに対してフェッチ要求を作成し、フェッチの述語を設定するだけです。

Core Dataについて理解していないことがありますか?私はそれがフレームワークの獣であり、ベストプラクティスは不十分だと認めます。

いくつかの助力に深刻な感謝を!

+0

'newerContentAvailable'属性の名前を変更してみてください - 私はCoreDataが "new"で始まる属性によってトリップされているというあいまいな想起を持っています。 – pbasdf

+0

それはそれを修正したようだ!私はそれをアップヴォートするつもりのための答えを書くためにケア? – horseshoe7

+0

それを並べ替えてうれしいです。奇妙な、ええ?私は答えを、感謝を追加します。 – pbasdf

答えて

0

NSNumberのNSNumber値は、%@ formatと一緒に使用すると置換されません。正しい型を返すintValueまたはfloatValue(doubleValueなど)を取得する必要があります。

述語は、私は、問題は、あなたが使用している属性名の結果である可能性があると信じて

NSPredicate *findPred = [NSPredicate predicateWithFormat:@"newerContentAvailable == 1"]; 

OR

+0

うまくいきませんでした。さらに、スカラー型をクエリしていた場合、newerContentAvailableValueを設定しませんか? 私は何年もの間OPとしてそれをやってきましたが、決して問題はありませんでした。スカラー型は実際はBOOLEANなので、@ YESを使うこともできませんでした。 – horseshoe7

1

、次のようになります。new...で始まる名前は、いくつかの予期しない動作を引き起こすように見えます(*)。属性名を変更してソートするかどうか試してみてください。

(*)たとえば、this question and answerを参照してください。

関連する問題