代码之家  ›  专栏  ›  技术社区  ›  user156888

替代Sqlite for iPhone[单触]

  •  3
  • user156888  · 技术社区  · 16 年前

    就像标题上说的。

    我发现我遇到的很多问题都与使用Sqlite和Monotouch所需的Sqlite包装器中缺乏线程安全性有关-所以-问题是-有其他选择吗?一定有 某物 !!?

    女://

    2 回复  |  直到 16 年前
        1
  •  4
  •   miguel.de.icaza    16 年前

    Sqlite本身不是线程安全的,所以无论何时访问数据库,都需要手动获取锁。你可以看到我是如何通过TweetStation做到这一点的:

    http://github.com/migueldeicaza/TweetStation/

    Sqlite有两个绑定:Sqlite net,它是一个很小的Sqlite绑定或Mono.Data.Sqlite。

    至于CoreData,它也会有同样的问题,你不能免费获得线程安全性,你也需要遵循他们的规则。

        2
  •  0
  •   jamie    15 年前

    在iOS 4中,可以调用sqlite3_config(SQLITE_config_SERIALIZED),或者在C#中使用sqlite3包装器:

        var result = SQLite3.Config(SQLite3.ConfigOption.Serialized);
        if (result != SQLite3.Result.OK)
        {
            throw new InvalidProgramException("sqlite3 refused Serialized option");
        }