如何解决使用SQLite3 API时Xcode内存泄漏
| 我正在使用以下代码片段向Sqlite3数据库添加具有名称的新元素/行,一切正常,但是每次我调用此函数时,这都会导致内存泄漏,有人可以帮助我如何避免此问题?{
sqlite3 *database;
sqlite3_stmt *addStmt;
NSString *localdescription=@\"Enter your Notes here\";
if(sqlite3_open([databasePath UTF8String],&database) == SQLITE_OK)
{
const char *sql = \"insert into database(name) Values(?)\";
if(sqlite3_prepare_v2(database,sql,-1,&addStmt,NULL) == SQLITE_OK)
{
sqlite3_bind_text(addStmt,1,[localName UTF8String],SQLITE_TRANSIENT);
if(SQLITE_DONE != sqlite3_step(addStmt))
NSAssert1(0,@\"Error while inserting data. \'%s\'\",sqlite3_errmsg(database));
else
//SQLite provides a method to get the last primary key inserted by using sqlite3_last_insert_rowid
NSLog(@\"id=====%d\",sqlite3_last_insert_rowid(database));
//Reset the add statement.
sqlite3_reset(addStmt);
}
}
sqlite3_close(database);
}
解决方法
您应该敲定不再使用的任何准备好的语句:
sqlite3_finalize(addStmt),addStmt = nil;
真的没有必要将指针设置为nil,就像我真正喜欢的那样。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。