当我尝试使用我在 iPhone 开发中从本地 SQLITE 数据库中选择的值执行任何操作时,我收到 EXC_BAD_ACCESS。我的功能代码是
-(void) updateFromDB {
// Setup the database object
sqlite3 *database;
// Open DB
if(sqlite3_open([databasePath UTF8String], &database) == SQLITE_OK) {
NSString *query = [NSString stringWithFormat:@"SELECT MOD_ID FROM MODULE;"];
//NSLog(@"QUERY: %@",query);
// Prepare statement
sqlite3_stmt *statement;
if(sqlite3_prepare_v2(database, [query UTF8String], -1, &statement, NULL) == SQLITE_OK) {
// Execute SQL
while (sqlite3_step(statement) == SQLITE_ROW) {
// Get MOD_IDs
NSInteger MOD_ID = sqlite3_column_int(statement, 0);
NSString *ID = [NSString stringWithFormat:@"%@",MOD_ID];
//=======================
// Get Notice Module Data
//=======================
if (MOD_ID == 1) {
self.noticeModule = [[ModuleSetting alloc] initWithID:ID];
}
}
} else {
NSAssert1(0,@"Error: failed to prepare statement. '%s'", sqlite3_errmsg(database));
}
// Release the compiled statement from memory
sqlite3_finalize(statement);
} else {
sqlite3_close(database);
NSAssert1(0,@"Failed to open database. '%s'",sqlite3_errmsg(database));
}
sqlite3_close(database);
}
线路出现异常访问
NSString *ID = [NSString stringWithFormat:@"%@",MOD_ID];
感谢您提供的任何帮助!
最佳答案
%@
表示对象。但是MOD_ID
似乎是一个整数
。所以你的格式应该是%d
,
NSString *ID = [NSString stringWithFormat:@"%d", MOD_ID];
关于iphone - SQLITE 选择上的 BAD_ACCESS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6407484/