我正在开发一个Xamarin iOS项目,但我想这个问题将适用于任何C#项目,而不是Xamarin特定的。我正在开发一个基于iPad的售货亭应用程序,店主在早上登录,然后用户可以全天注册并订购产品。在哪里链接对象,以便它们可以在许多类中引用
当店主早上登录时,我进行REST API调用,收集当天的配置信息。例如,它会说明哪些产品应具有特色等。API调用会填充名为DailySetting
的对象。
当用户与iPad进行交互时,我们会经历大量屏幕,而不总是按相同的顺序,每个屏幕都有自己的ViewControllers。每个屏幕设置UserInteraction
对象的不同属性,然后通过POST请求将其发送回服务器。
我的问题是在哪里/如何存储DailySetting
和UserInteraction
对象?我看到它,我有一些选项:
- 并将其作为对在 higherarchy第一的ViewController的属性,然后每次我需要通过VC的引用对象,循环 直到我找到根本之一,然后访问公众 属性。这看起来很浪费,不太合乎逻辑。
- 使对象的/属性为静态,因为在任何时候只有一个使用中的对象的属性为 。如果我理解正确,他们可能会收集垃圾 ,因为他们不会被设置为任何东西,所以可能不是最好的 方法。
- 将数据存储在SQLLite数据库中,并调用每次我做出 更改。这看起来有点过于简单,只是参考当前对象的 。
- 对于DailySetting对象,将其保存在应用程序设置中,但 是否是临时设置的最佳位置?
- 另一个更好的办法,比我能想到的...
一定有,我可以附上目前的对象在使用,然后从不同的类/ ViewControllers等
如果您有许多需要引用的类,那么可以通过所有其他项目引用的项目是一个好方法。如果只有少数几个设置值,那么在设置中保存值很好,并且您确定永远不会添加它们。否则,去数据库。那就是它的目的。 – paqogomez
我建议查看MvvmCross的服务位置:https://github.com/MvvmCross/MvvmCross/wiki/Service-Location-and-Inversion-of-Control –