【问题标题】:How to pass variable in Realm query Objective C?如何在领域查询Objective C中传递变量?
【发布时间】:2016-12-15 11:25:16
【问题描述】:
NSString a;
NSString b; 
RealmDatabaseTimeStamp *timeStamp = [[RealmDatabaseTimeStamp objectsWhere:@"activityEnableTimeStamp =="@b,@"Id=="a] firstObject];

这给出了一个关于在查询中传递变量的错误“目标 c 中的字符串之后的意外标记”。任何线索将不胜感激。

【问题讨论】:

    标签: objective-c database realm


    【解决方案1】:

    领域的查询使用NSPredicate。语法与 NSPredicate 的语法相同。您可以使用%@%@ 是一个 var arg 替代对象值(通常是字符串、数字或日期)。

    NSString a;
    NSString b;
    RealmDatabaseTimeStamp *timeStamp = [[RealmDatabaseTimeStamp objectsWhere:@"activityEnableTimeStamp = %@ AND Id = %@", b, a] firstObject];
    

    您可以在NSPredicate Format String Syntax查看更多详情

    【讨论】:

    • 虽然这个答案是有效的,但那个特定的错误是说他的字符串后面有无效字符。事实上,问题在于他试图在没有有效操作数或方法的情况下连接字符串。 activityEnableTimeStamp =="@b 应该是 [@"activityEnableTimeStamp ==" stringByAppendingString:b]@"Id=="a 应该是 [@"Id==" stringByAppendingString:a] (也许 Realm 的语法也是错误的,这个答案修复了它,但我只是注意到错误所说的)。
    猜你喜欢
    • 1970-01-01
    • 2014-03-01
    • 1970-01-01
    • 2019-12-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-17
    相关资源
    最近更新 更多