2016-12-15 65 views
-1
NSString a; 
NSString b; 
RealmDatabaseTimeStamp *timeStamp = [[RealmDatabaseTimeStamp objectsWhere:@"activityEnableTimeStamp =="@b,@"Id=="a] firstObject]; 

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

回答

2

领域查询使用NSPredicate。语法与NSPredicate的相同。您可以使用%@,%@是对象值的var arg替换 - 通常是字符串,数字或日期。

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

你可以看到更多的细节上NSPredicate Format String Syntax

+0

虽然这个答案是有效的,该错误是说他有他的琴弦后无效字符。事实上,问题在于他试图**没有有效操作数或方法的串连**。 activityEnableTimeStamp ==“@ b'应该是[[@”activityEnableTimeStamp ==“stringByAppendingString:b]'和”@“Id ==”a'应该是'[@“Id ==”stringByAppendingString:a]'(也许Realm的语法也是错误的,这个答案修正了它,但我只是注意到错误所说的)。 –