【问题标题】:Xcode memory leak when using SQLite3 API使用 SQLite3 API 时 Xcode 内存泄漏
【发布时间】:2011-09-02 08:23:16
【问题描述】:

我正在使用以下代码 sn-p 将带有名称的新元素/行添加到 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], -1, 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);
}

【问题讨论】:

    标签: iphone xcode memory-leaks sqlite


    【解决方案1】:

    您应该完成所有不再使用的准备好的语句:

    sqlite3_finalize(addStmt), addStmt = nil;
    

    没有必要将指针设置为 nil 我只是喜欢它。

    【讨论】:

      猜你喜欢
      • 2011-10-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-02
      • 2016-04-02
      • 2011-11-06
      • 1970-01-01
      相关资源
      最近更新 更多