2009-04-14 63 views
0

我想定義一個如下功能:如何定義一個函數

if(stmtToFinalize) { 
     NSLog(@"Finalizing statement stmtToFinalize"); 
     if (sqlite3_finalize(stmtToFinalize) !=SQLITE_OK) 
      NSLog(@"An error occured while trying to finalize a statement stmtToFinalize: '%s'", sqlite3_errmsg(database)); 
     stmtToFinalize = NULL; 
    } 

但我不熟悉的#define指令。我想要stmtToFinalize而不是sqlite3_stmt類型的任何語句。

我該如何實現它?

謝謝。

回答

2

#define的語法不是Objective-C特有的。

#define MY_FUNCTION(x) do { \ 
    if((x)) { \ 
     NSLog(@"Finalizing statement stmtToFinalize"); \ 
     if (sqlite3_finalize((x)) !=SQLITE_OK) \ 
       NSLog(@"An error occured while trying to finalize a statement stmtToFinalize: '%s'", sqlite3_errmsg(database)); \ 
     (x) = NULL; \ 
    } } while (0) 

NSLog()格式字符串中的文本未被更改。

+0

謝謝,是否可以更改字符串中的文本?用x替換stmtToFinalize。 – 2009-04-14 13:22:13