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
Post a Comment