0

realm.io フレームワークの 0.86.3 バージョンを使用しています。

私のオブジェクトは次のようになります。

RLMArray <0x7fd1f3642a50> (
[0] Product {
    identifier = 4;
    overview = test;
    desc = test;
    reference = AB-123;
    category = Category {
        identifier = 2;
        name = Telescopic Arm;
        level = 1-1;
        parent = Category {
            identifier = 1;
            name = Arm;
            level = 1;
            parent = (null);
        };
    };
}
)

これまでのところすべて問題ないように見えますが、リクエストしようとすると:

RLMArray *products = [GEProduct objectsWhere:@"category.name contains 'telescopic'"];

私は得ています:

uncaught exception 'Invalid type', reason: 'Predicate 'CONTAINS' is not supported'

何が欠けていますか?

お時間をいただきありがとうございます。

4

1 に答える 1

4

CONTAINS、BEGINSWITH、ENDSWITH などのマルチレベル キーパス クエリや、マルチレベル キーパスでの大文字と小文字を区別しないクエリはサポートされていないため、この例外が発生します。私たちはこの機能に取り組んでいますが、今のところありません。

ただし、これらのキーワード直接プロパティ クエリでサポートされているため、クエリを次のように変更できます。

RLMArray *categories = [GECategory objectsWhere:@"name contains 'telescopic'"];
RLMArray *products = [GEProduct objectsWhere:@"category IN %@", categories];

洗練されていないことはわかっていますが、より複雑なマルチレベルのキーパス クエリがサポートされるまでは、うまくいくはずです。

更新 (2014 年 10 月 27 日)

Realm v0.88.0 の時点で、大文字と小文字を区別しない、CONTAINS、BEGINSWITH、ENDSWITH などの複数レベルのキーパス クエリがサポートされているため、投稿者の最初の試行が機能するようになりました。

[GEProduct objectsWhere:@"category.name contains 'telescopic'"];

Realm v0.88.0 はまもなくリリースされます。

于 2014-10-15T17:35:38.597 に答える