Cocoa touch Xcode/Cocoa中的复合/复合C字符串

Cocoa touch Xcode/Cocoa中的复合/复合C字符串,cocoa-touch,xcode,c-strings,Cocoa Touch,Xcode,C Strings,我正在创建一个SQLite3程序。我正在代码中创建数据库。我有大约15个专栏。示例如下: NSString *createSQL = "CREATE TABLE IF NOT EXISTS FIELDS (DATE TEXT PRIMARY KEY, NAME TEXT, /*COLUMN #1 */ CLASS TEXT, /*COLUMN #2 */

我正在创建一个SQLite3程序。我正在代码中创建数据库。我有大约15个专栏。示例如下:

NSString *createSQL = "CREATE TABLE IF NOT EXISTS FIELDS (DATE TEXT PRIMARY KEY,
                   NAME TEXT,           /*COLUMN #1 */
                   CLASS TEXT,          /*COLUMN #2 */
                   ...
                   COMPLETED TEXT);";  /*COLUMN #15 */

当我编译时,我得到了“缺少终止字符错误。我做了一些研究,发现因为它是一个C字符串,所以它会将CR\LF处理为一个连续字符。我不想创建一行代码,每当我需要使用SQL时,这些代码都会滚动屏幕的最右边距。有没有一种方法可以让我创建一个字符串,它可以在单独的行中拆分,而不会出现此错误?

您好,我想您忘记了按照目标C的要求,将@character放在字符串的开头

NSString*createSQL=@“创建表如果不存在字段(日期文本主键, 名称文本,//列#1 类文本,//列#2 ...
(已填妥的文本);“//列#15

您好,我想您忘了按照目标C的要求在字符串的开头放置@character

NSString*createSQL=@“创建表如果不存在字段(日期文本主键, 名称文本,//列#1 类文本,//列#2 ...
(已填妥的文本);“//在Objective-C中的列#15

与在C中一样,您可以使用行连续标记
\
跨多行中断字符串文字。例如(注意
@
表示
NSString
文本):


在Objective-C中,就像在C中一样,您可以使用行连续标记
\
在多行中打断字符串文字。例如(注意
@
表示
NSString
文本):

两件事:

  • 字符串开始前需要一个
    @
    字符。NSString文本
    @“看起来像这样”

  • 您的字符串被拆分为多行,这会使编译器感到困惑(这就是您看到的错误)。你需要让它完全在一条线上。如果要像这样拆分,请将每行用引号括起来,如下所示:

  • _

    或者按照巴里在这里说的做,在每行末尾使用一个尾随的反斜杠来表示继续。

    两件事:

  • 字符串开始前需要一个
    @
    字符。NSString文本
    @“看起来像这样”

  • 您的字符串被拆分为多行,这会使编译器感到困惑(这就是您看到的错误)。你需要让它完全在一条线上。如果要像这样拆分,请将每行用引号括起来,如下所示:

  • _


    或者按照Barry在这里说的做,并在每行末尾使用一个尾随的反斜杠来表示继续。

    我不认为这是因为当我将所有SQL放在同一行上时,它编译和执行时不存在问题。我不认为这是因为当我将所有SQL放在同一行上时,它编译和执行时不存在问题。
    NSString *createSQL = @"CREATE TABLE IF NOT EXISTS FIELDS (DATE TEXT PRIMARY KEY, \
                       NAME TEXT,  \       /*COLUMN #1 */
                       CLASS TEXT, \       /*COLUMN #2 */
                       ...         \
                       COMPLETED TEXT);";  /*COLUMN #15 */
    
    NSString * foo = @"foo "
                      "bar "
                      "baz";