私は iOS アプリケーションに取り組んでおり、Xcode 5 および IOS7 に移行してからいくつかの問題があります。iOS7 デバイスでテストしているときに、データベースに書き込むことができません。シミュレーターでは正常に動作します (iOS 7) 。iOS 6 デバイスでは正常に動作します。
これは、sqlite3 データベースに書き込むための私のコードです。その後、同じデータベースから読み取っていますが、値は変更されていません。複数のデバイスでテスト済み。
前もって感謝します。
sqlite3 *db9;
@try {
NSFileManager *fileMgr9 = [NSFileManager defaultManager];
NSString *dbPath9 = [[[NSBundle mainBundle]resourcePath]stringByAppendingPathComponent:@"db.sqlite3"];
BOOL success9 = [fileMgr9 fileExistsAtPath:dbPath9];
if (!success9) {
NSLog(@"Cannot locate database file '%@'.", dbPath9);
}
else NSLog(@"Database file located at: '%@'.", dbPath9);
if (!(sqlite3_open([dbPath9 UTF8String], &db9) == SQLITE_OK)) {
NSLog(@"An error has occured");
}
NSString *strSQL9 = [NSString stringWithFormat:@"UPDATE teste SET scor = ?, timp = ? WHERE id = ?"];
const char *sql9 = [strSQL9 UTF8String];
sqlite3_stmt *sqlStatement9;
if (sqlite3_prepare(db9, sql9, -1, &sqlStatement9, NULL) != SQLITE_OK) {
NSLog(@"Problem with prepare statement");
}else
{
NSLog(@"middle of it - scrie");
if (scordb1 == 0) {
sqlite3_bind_int(sqlStatement9, 1, scorTestTotal);
}else
sqlite3_bind_int(sqlStatement9, 1, ((scorTestTotal+scordb1)/2));
sqlite3_bind_int(sqlStatement9, 2, timeInterval);
sqlite3_bind_int(sqlStatement9, 3, vasile);
sqlite3_step(sqlStatement9);
int success = sqlite3_step(sqlStatement9);
sqlite3_reset(sqlStatement9);
if (success == SQLITE_ERROR){ NSLog(@"error write");}
else {NSLog(@"success write");}
}
sqlite3_finalize(sqlStatement9);
sqlite3_close(db9);
NSLog(@"Close db SCRIE db9");
}
@catch (NSException *exception) {
NSLog(@"An exception occured: %@", [exception reason]);
}