Hi,
ich habe hier einen recht alten Code der ein paar Strings und ein Image als blob in eine sqlite schreiben soll. Das hat er auch immer getan, nur unter iOS8 stürzt er beim sqlite_step() am Ende ab, Leider einfach nur mit einem EXC_BAD_ACCEES und keiner weiteren Meldung.
Wie kann ich herausfinden was er da nicht mag oder sieht jemand generell direkt einen Fehler?
Danke
Claus
Alles anzeigen
ich habe hier einen recht alten Code der ein paar Strings und ein Image als blob in eine sqlite schreiben soll. Das hat er auch immer getan, nur unter iOS8 stürzt er beim sqlite_step() am Ende ab, Leider einfach nur mit einem EXC_BAD_ACCEES und keiner weiteren Meldung.
Wie kann ich herausfinden was er da nicht mag oder sieht jemand generell direkt einen Fehler?
Danke
Claus
Quellcode
- -(BOOL)changePilot:(NSString*)command Pilot:(Pilot*)pilot Values:(NSInteger)values
- {
- BOOL ret=TRUE;
- NSString *birth=[dateForm stringFromDate:pilot.birth];
- sqlite3 *dbHandle;
- sqlite3_stmt *preparedStatement;
- int dbrc;
- dbrc = sqlite3_open([sql.dbFilePath UTF8String], &dbHandle);
- if (dbrc)
- {
- myLog(@"sqlite3_open: failed");
- return FALSE;
- }
- dbrc = sqlite3_prepare_v2(dbHandle,
- [command UTF8String],
- -1, &preparedStatement, NULL);
- if (dbrc)
- {
- sqlite3_close(dbHandle);
- myLog(@"sqlite3_prepare: failed");
- return FALSE;
- }
- if (sqlite3_bind_text (preparedStatement,1,[[pilot lastname] UTF8String],-1,SQLITE_STATIC)!= SQLITE_OK)
- {
- myLog(@"sqlite3_bin: failed");
- ret=FALSE;
- }
- if (sqlite3_bind_text (preparedStatement,2,[[pilot firstname] UTF8String],-1,SQLITE_STATIC)!= SQLITE_OK)
- {
- myLog(@"sqlite3_bin: failed");
- ret=FALSE;
- }
- if (sqlite3_bind_text (preparedStatement,3,[birth UTF8String],-1,SQLITE_STATIC)!= SQLITE_OK)
- {
- myLog(@"sqlite3_bin: failed");
- ret=FALSE;
- }
- if (sqlite3_bind_int (preparedStatement,4,(int)[pilot location])!= SQLITE_OK)
- {
- myLog(@"sqlite3_bin: failed");
- ret=FALSE;
- }
- if(pilot.stamp!=nil)
- {
- NSData *imgData = UIImagePNGRepresentation(pilot.stamp);
- if (sqlite3_bind_blob(preparedStatement, 5, (int)[imgData bytes],(int) [imgData length], NULL)!= SQLITE_OK)
- {
- myLog(@"sqlite3_bin: failed");
- ret=FALSE;
- }
- }
- else
- {
- if (sqlite3_bind_blob(preparedStatement, 5, 0, 0, NULL)!= SQLITE_OK)
- {
- myLog(@"sqlite3_bin: failed");
- ret=FALSE;
- }
- }
- if(values==6)
- {
- if (sqlite3_bind_int (preparedStatement,6,(int)[pilot number])!= SQLITE_OK)
- {
- myLog(@"sqlite3_bin: failed");
- ret=FALSE;
- }
- }
- if(ret==true)
- {
- dbrc = sqlite3_step(preparedStatement);
- if(dbrc!=SQLITE_DONE)
- {
- myLog(@"sqlite step: failed");
- ret=FALSE;
- }
- }
- sqlite3_finalize(preparedStatement);
- sqlite3_close(dbHandle);
- dbHandle=nil;
- return ret;
- }
2 Stunden Try & Error erspart 10 Minuten Handbuchlesen.
Pre-Kaffee-Posts sind mit Vorsicht zu geniessen
Pre-Kaffee-Posts sind mit Vorsicht zu geniessen