我有一个Swift应用程序,我正在工作,允许用户保存关于他们的个人资料的各种设置。在我的代码中,有时候知道这些设置/首选项对于应用程序的业务逻辑非常重要。其中之一是用户在哪里工作(他们的工作,是sql数据库中以ID为主键的一行)。用户可以在任何给定的时间在应用程序中选择一个(并且只有一个)。可以把它想象成一个个人资料——他们可以做很多工作,但只有一个被选中。
以下是了解workplaceid配置文件很重要的场景:
- 在我的sqlite数据库中,基于当前选择的工作ID检索工作/班次信息(因此不是来自数据库的ID,而是他们当前选择的ID)。我把这个传递到我的查询。
- 在NSDate扩展函数中,当我去确定他们的开始日期时,我需要检索他们当前选择的配置文件,并使用它进行计算。
- 在一个特定的视图模型中,当我想要显示/隐藏某些字段时。
- 在警告视图中显示与当前工作场所相关的内容。
我可能会从应用程序的每一层调用这个helper/utility类,这似乎是一个典型的危险信号,您不会这样做。无论是日志记录,还是获取信息的用户服务。
我很想知道其他人在这种情况下会怎么做。当你需要整个应用的nsuserdefaults时,答案是"谁在乎呢,只要做一个实用程序类,然后在你需要的地方调用它"?或者是否存在其他设计良好的iOS应用所遵循的最佳实践?我知道人们倾向于推荐AOP。这在iOS中有一席之地吗?谢谢stackoverflow:)
允许用户在任何给定时间选择应用程序中的一个(且只有一个)。
这告诉我你想创建一个单例类。每次想要更改配置文件时,都要点击单例类并设置它。该类封装了获取/设置所需的所有逻辑以及访问器函数。这就是我多年来一直在我的ObjC代码中做的事情,它对我很有帮助。它非常容易调试,其余代码不需要了解配置文件管理(除非是选择配置文件的UI部分)。