在插入 livecategories 之前,我正在检查此 id 是否存在,如果不存在则插入该值。但有时它会崩溃并获得 exc_bad_access。为什么我会得到这个?请参阅附图。
当我将鼠标悬停在 &statement 上时,它会显示这个 0x000000:
在插入 livecategories 之前,我正在检查此 id 是否存在,如果不存在则插入该值。但有时它会崩溃并获得 exc_bad_access。为什么我会得到这个?请参阅附图。
当我将鼠标悬停在 &statement 上时,它会显示这个 0x000000:
检查以下示例代码:
// Setup the database object
sqlite3 *database;
// Init the animals Array
animals = [[NSMutableArray alloc] init];
// Open the database from the users filessytem
if(sqlite3_open([databasePath UTF8String], &database) == SQLITE_OK) {
// Setup the SQL Statement and compile it for faster access
const char *sqlStatement = "select * from animals";
sqlite3_stmt *compiledStatement;
if(sqlite3_prepare_v2(database, sqlStatement, -1, &compiledStatement, NULL) == SQLITE_OK) {
// Loop through the results and add them to the feeds array
while(sqlite3_step(compiledStatement) == SQLITE_ROW) {
// Read the data from the result row
NSString *aName = [NSString stringWithUTF8String:(char *)sqlite3_column_text(compiledStatement, 1)];
NSString *aDescription = [NSString stringWithUTF8String:(char *)sqlite3_column_text(compiledStatement, 2)];
NSString *aImageUrl = [NSString stringWithUTF8String:(char *)sqlite3_column_text(compiledStatement, 3)];
// Create a new animal object with the data from the database
Animal *animal = [[Animal alloc] initWithName:aName description:aDescription url:aImageUrl];
// Add the animal object to the animals Array
[animals addObject:animal];
[animal release];
}
}
// Release the compiled statement from memory
sqlite3_finalize(compiledStatement);
}
sqlite3_close(database);
另一个链接寻求帮助。
希望这对你有用..