我的背景是C#。我已经开始在OS X上使用Xamarin Studio来编写iOS应用程序。这是一个小应用程序,我希望在完成iOS版本后发布Android版。
我正在尝试使用NSUserDefaults
来存储应用中使用的设置。我的第一步是使用NSDictionary
并保存字典。 Xamarin文档显示NSDictionary
继承自IDictionary
和IDictionary<NSObject, NSObject>
。
在我的存储库类中抽象NSObject
是否值得努力?然后我会在我的业务逻辑中使用本机C#类型,但在加载和保存数据时,我的存储库/模型可以转换为NSObject
。
回到我关于IDictionary
的第一段,我应该将存储库转换为/ IDictionary<NSObject, NSObject>
,还是在代码库的其余部分使用IDictionary<string, string>
?我有一种感觉,如果我尝试这种策略,我将面临一场艰苦的战斗。
此时我略显散乱,所以平台上的新手我不知道还有什么问题要问。也许一种总结我的困惑的方法是“我何时应该使用本机C#类型,何时应该使用NS *类型?”
答案 0 :(得分:1)
您是否会尝试尽可能多地重用代码将应用程序移植到其他Xamarin支持的平台?
如果是这样,那么请花些时间尽可能地从代码中抽象出NS *类型。
如果没有,请不要担心将它们抽象出来并让事情变得更简单。无缘无故的抽象增加了不必要的复杂性。
答案 1 :(得分:1)
也许你可以抽象地考虑NSUserDefaults
中的System.IO.IsolatedStorage.IsolatedStorageSettings
,它不是在iOS或Android中实现的,但通过这样做,您也可以将此代码移植到所有Windows平台。
您可以在此处查看Moonlight实现,以将其用作模板: