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

All overlapping substrings matching a java regex -

c++ - Using OpenSSL in a multi-threaded application -

php - Deleting/Renaming a locked file -