首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我需要在SQLite.swift中“关闭”连接吗?

我需要在SQLite.swift中“关闭”连接吗?
EN

Stack Overflow用户
提问于 2015-11-27 14:55:45
回答 3查看 2.7K关注 0票数 4

不确定是否应该以及如何在SQLite.swift中关闭连接。它会导致线程/内存泄漏吗?

EN

回答 3

Stack Overflow用户

发布于 2015-11-27 14:57:30

如果你不手动关闭,Sqlite连接将自动关闭。

例如:

代码语言:javascript
复制
    try { 
        conn.close();
    } 
    catch (Exception ex) {
        System.out.println ("Error");
        return false;
    }
票数 0
EN

Stack Overflow用户

发布于 2020-04-30 11:43:28

  • ,尽管SQLite会自动关闭连接。以避免悬空线程造成的潜在争用情况。为了完整起见,我将此代码添加到我的通用Swift查询函数的末尾。

代码语言:javascript
复制
if sqlite3_close(db) != SQLITE_OK {
    print("error closing database")
}

哪里

代码语言:javascript
复制
var db: OpaquePointer?
var databaseFullPath: String = "" /// Location database.

if sqlite3_open(databaseFullPath, &db) != SQLITE_OK {
    print("error opening database")
}

其它信息:sqlite3_close() documentation

票数 0
EN

Stack Overflow用户

发布于 2021-06-24 05:03:11

通常,当Connection变量超出其使用范围并被垃圾收集系统(在deinit函数中)回收时,数据库就会关闭。但有时它是您的类的属性之一,所以您可能希望在某些函数中间手动关闭它。因此,下面的代码可以工作:

代码语言:javascript
复制
sqlite3_close(db.handle)

其中db的类型为Connection。然后,您可以覆盖或删除该数据库文件,不会引发任何警告。无论如何,我强烈建议你以谨慎的方式设计你的代码,让系统释放句柄。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33951775

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档