在字符串中使用双引号
Using double quotes within a string
我正在构建 Xcode 中包含双引号 (") 的数据库查询。
例如,我有这行代码来生成我的查询:
NSString *query = [NSString stringWithFormat:@"SELECT id FROM site WHERE name = \"%@\"", siteName];
哪里
siteName = "TestSite"
在 Xcode 5 中一切正常 我会得到正确的字符串:
query = "SELECT id FROM site WHERE name = "TestSite""
升级到 Xcode 6 后,如果我 运行 完全相同的代码,则转义序列不起作用,我得到:
query = "SELECT id FROM site WHERE name = \"TestSite\""
我什至尝试用双引号 (34) 的 ASCII 代码替换转义序列,如下所示:
NSString *query = [NSString stringWithFormat:@"SELECT id FROM site WHERE name = %c%@%c", 34, siteName, 34];
我仍然得到
query = "SELECT id FROM site WHERE name = \"TestSite\""
有谁知道为什么会这样? Xcode 6 中是否有一些不同的晦涩设置?
NSString *query = [NSString stringWithFormat:@"SELECT id FROM site WHERE name = ?"];
sqlite3_stmt *statement;
if (sqlite3_prepare_v2(database, [query UTF8String], -1, &statement, nil)
== SQLITE_OK) {
sqlite3_bind_text(statement, 1, [name UTF8String], -1, NULL);
这就是@rmaddy 所说的,而且绝对是要走的路。在我开始像这样绑定之前,我一直在尝试按照你的方式来做这件事。
我正在构建 Xcode 中包含双引号 (") 的数据库查询。 例如,我有这行代码来生成我的查询:
NSString *query = [NSString stringWithFormat:@"SELECT id FROM site WHERE name = \"%@\"", siteName];
哪里
siteName = "TestSite"
在 Xcode 5 中一切正常 我会得到正确的字符串:
query = "SELECT id FROM site WHERE name = "TestSite""
升级到 Xcode 6 后,如果我 运行 完全相同的代码,则转义序列不起作用,我得到:
query = "SELECT id FROM site WHERE name = \"TestSite\""
我什至尝试用双引号 (34) 的 ASCII 代码替换转义序列,如下所示:
NSString *query = [NSString stringWithFormat:@"SELECT id FROM site WHERE name = %c%@%c", 34, siteName, 34];
我仍然得到
query = "SELECT id FROM site WHERE name = \"TestSite\""
有谁知道为什么会这样? Xcode 6 中是否有一些不同的晦涩设置?
NSString *query = [NSString stringWithFormat:@"SELECT id FROM site WHERE name = ?"];
sqlite3_stmt *statement;
if (sqlite3_prepare_v2(database, [query UTF8String], -1, &statement, nil)
== SQLITE_OK) {
sqlite3_bind_text(statement, 1, [name UTF8String], -1, NULL);
这就是@rmaddy 所说的,而且绝对是要走的路。在我开始像这样绑定之前,我一直在尝试按照你的方式来做这件事。