objective c - from within a static function how to place info into iVars? -


and note can not pass in viewcontroller pointer due function being passed function.

static int callback(void *notused, int argc, char **argv, char **azcolname) {     nsstring *str = @"";       int i;      for(i=0; i<argc; i++)     {         printf("%s = %s\n", azcolname[i], argv[i] ? argv[i] : "null");         str = [nsstring stringwithformat:@"%@\n%s = %s\n", str, azcolname[i], argv[i] ? argv[i] : "null"];     }     printf("\n");       //tvdisplay uitextview     [tvdisplay settext:str]; // <---- ??? how ivar     return 0; } 

the call:

rc = sqlite3_exec(db, psql[i], callback, 0, &zerrmsg); 

callback functions typically have argument allows pass along arbitrary data (it's void * called context or similar). can pass in object need access when set callback function, , retrieve within callback function:

static void mycallback(int someresult, void *context) {    someclass *someobject = (someclass *)context;    [someobject dostuff]; } 

in particular case, place "arbitrary data want access in callback function" void * argument right after callback function have presently set 0:

int sqlite3_exec(   sqlite3*,                                  /* open database */   const char *sql,                           /* sql evaluated */   int (*callback)(void*,int,char**,char**),  /* callback function */   void *,                                    /* 1st argument callback */   char **errmsg                              /* error msg written here */ ); 

keep in mind you're responsible ensuring data stick in there remains valid while callback has not yet returned, and, if necessary, free in callback.


Comments

Popular posts from this blog

c# - SVN Error : "svnadmin: E205000: Too many arguments" -

c# - Copy ObservableCollection to another ObservableCollection -

All overlapping substrings matching a java regex -