Строки Objective-C - PullRequest
       2

Строки Objective-C

0 голосов
/ 03 сентября 2010

Я проверяю код, который делает следующий вызов:

id<PLResultSet> results = [sqliteDatabase executeQuery:@"select * where id=?",Id];

sqliteDatabase - это экземпляр PlausibleDatabase (из GoogleCode, я так понимаю). Код работает, но я этого не понимаю. В частности, как работает этот раздел?

@"select * where id=?",Id

Выполнен ли запрос с заменой ? на Id? Или функция exeuteQuery как-то объединяет строки? Как этот синтаксис имеет смысл.

(Да, я новичок в Obj-C)

Спасибо

KF

Ответы [ 2 ]

1 голос
/ 03 сентября 2010

Этот бит:

@"select * where id=?"

- это NSString (в отличие от строки в стиле c ), которая передается в метод executeQuery: : объекта sqliteDatabase. Второй (неназванный) аргумент метода - Id, предположительно локальная переменная.

Исходя из названия метода, оболочка sqlite, вероятно, создает параметризованный запрос . Знак вопроса - это синтаксис, используемый sqlite для обозначения места для вставки параметров.

0 голосов
/ 03 сентября 2010

Он специфичен для метода executeQuery, в котором ? используется в качестве заполнителя, а соответствующий позиционный аргумент используется в качестве заполнителя для этого заполнителя (с добавлением кавычек и т. Д., Если необходимо).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...