2011-07-15 34 views
0

我設置在.h文件中:定義源碼

#define ID_ACTIVE 2 

然後用這個在.m文件sqlite的語句:

NSString *query = @"SELECT task FROM tasks WHERE task_state = 'ID_ACTIVE'"; 

,但是當我看到 '查詢' 通過GDB它給了我這個查詢語句:

SELECT task FROM tasks WHERE task_state = 'ID_ACTIVE' 

不應該預處理器用ID_ACTIVE替換2嗎?

回答

0

在您的代碼中,您可以使用ID_ACTIVE作爲int變量。

  1. 如果task_state是一個字符串,使用,

    NSString *query = [NSString stringWithFormat:@"SELECT task FROM tasks WHERE task_state = '%d'", ID_ACTIVE]; 
    
  2. 如果它是一個號碼,然後使用,

    NSString *query = [NSString stringWithFormat:@"SELECT task FROM tasks WHERE task_state = %d", ID_ACTIVE]; 
    
+0

1.應該是「%@ '而不是'%d'對嗎? – Snowcrash

+0

實際上* ID_ACTIVE *被定義爲2(* integer *),所以我們必須使用整數格式。如果它被定義爲@「2」(* string *),那麼我們應該使用*%@ *。 – EmptyStack