0

我已经开始为 Windows Phone 开发一个应用程序。我想制作一个具有自定义对象数组的 Singleton 对象。我也想有一些自定义功能,如Add,等CheckIfExistsDelete

我需要在应用程序关闭时保存此数组,并在应用程序启动时将数组加载到 Singleton。

谁能帮我做我应该做的事情?我应该从哪里开始?

在 iOS 平台上NSUserDefault,我用我想要的键保存对象,然后从键中加载它。

4

1 回答 1

1

独立存储只是可用选项之一。

iOS 中 NSUserDefault 的直接功能模拟是IsolatedStorageSettings类。这是一些通过键保存/加载值的辅助方法的片段:

static T getValue<T>( string _propName )
{
    return getValue( _propName, default( T ) );
}

static T getValue<T>( string _propName, T _defaultValue )
{
    var iss = IsolatedStorageSettings.ApplicationSettings;
    T res;
    if( iss.TryGetValue( _propName, out res ) )
        return res;
    return _defaultValue;
}

static void setValue( string _propName, object val )
{
    IsolatedStorageSettings.ApplicationSettings[ _propName ] = val;
    IsolatedStorageSettings.ApplicationSettings.Save();
}

或者,您可以使用成熟的 ORM + RDBMS。在 iOS 中,您将 Core Data 与底层 SQLite 一起使用,在 WP7 中,同样被称为具有底层 SQLCE 的实体框架。

所有 3 种解决方案都有其优点和缺点。根据您的数据大小(例如,您不应该在 IsolatedStorageSettings 中保留兆字节的数据)和数据访问模式(例如,如果您需要查询,或者您只插入小项目同时保持 DB 基本完好无损,请谨慎选择,SQL 引擎可以加速增加了几个数量级)。

于 2013-01-29T10:55:25.627 回答