2016-12-15 64 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的語法也是錯誤的,這個答案修正了它,但我只是注意到錯誤所說的)。 –