我已经开始为 Windows Phone 开发一个应用程序。我想制作一个具有自定义对象数组的 Singleton 对象。我也想有一些自定义功能,如Add
,等CheckIfExists
Delete
我需要在应用程序关闭时保存此数组,并在应用程序启动时将数组加载到 Singleton。
谁能帮我做我应该做的事情?我应该从哪里开始?
在 iOS 平台上NSUserDefault
,我用我想要的键保存对象,然后从键中加载它。
我已经开始为 Windows Phone 开发一个应用程序。我想制作一个具有自定义对象数组的 Singleton 对象。我也想有一些自定义功能,如Add
,等CheckIfExists
Delete
我需要在应用程序关闭时保存此数组,并在应用程序启动时将数组加载到 Singleton。
谁能帮我做我应该做的事情?我应该从哪里开始?
在 iOS 平台上NSUserDefault
,我用我想要的键保存对象,然后从键中加载它。
独立存储只是可用选项之一。
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 引擎可以加速增加了几个数量级)。