Какой правильный способ избежать спецификаторов формата sqlite в строке - PullRequest
0 голосов
/ 30 января 2012

Как правильно экранировать описатели формата sqlite в строке?

    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
    [dateFormatter setDateFormat:@"yyyy-MM-dd"];

    NSDate *today = [NSDate date];
    NSString *todaysDate = [dateFormatter stringFromDate:today];

    NSString *SQL = [NSString stringWithFormat: @"SELECT id,strftime(\"%Y-%m-%d\") as `date`,word,term FROM words WHERE `date` <= '%@' ORDER BY `date` DESC LIMIT 1",todaysDate];

Спасибо

1 Ответ

0 голосов
/ 30 января 2012

Разобрался. Чтобы экранировать "%", используйте "%%".

NSString *SQL = [NSString stringWithFormat: @"SELECT id,strftime(\"%%Y-%%m-%%d\") as `date`,word,term FROM words WHERE `date` <= '%@' ORDER BY `date` DESC LIMIT 1",todaysDate];
...