替代Sqlite for iPhone [monotouch]

时间:2010-07-15 16:17:09

标签: iphone sqlite xamarin.ios

就像标题所说的那样。

我发现我遇到的许多问题都与使用Sqlite和Monotouch所需的Sqlite包装器中的线程安全性缺乏有关 - 所以 - 问题是 - 有替代方案吗?必须有的东西 !!?

瓦特://

2 个答案:

答案 0 :(得分:4)

Sqlite本身不是线程安全的,因此每当您要访问数据库时都需要手动锁定。您可以通过TweetStation了解我是如何做到这一点的:

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

这允许我在后台更新数据库。

有几个绑定到Sqlite:sqlite-net这是一个很小的Sqlite绑定或Mono.Data.Sqlite。

对于CoreData,它会遇到同样的问题,你没有免费获得线程安全,你也需要遵守他们的规则。

答案 1 :(得分:0)

在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");
    }