?является заполнителем для заменяемых значений.Вы не должны вставлять элементы в базу данных, используя stringWithFormat, а используя заполнители.Я не знаю, какую библиотеку базы данных вы используете, но большинство библиотек позволяют вам использовать подготовленные запросы, например так:
[database executeQuery:@"insert into sometable (questions) values (?)", question];
question
будет автоматически экранирован, а ваши вопросительные знаки будут сохранены.Это также охраняет персонажей против.Попробуйте сами, измените вопрос так: «Разве ты не рад, что я не сказал банан?».Ваш запрос, вероятно, завершится сбоем, поскольку сгенерированный SQL будет недействительным.