iOS横切关注点



我有一个Swift应用程序,我正在工作,允许用户保存关于他们的个人资料的各种设置。在我的代码中,有时候知道这些设置/首选项对于应用程序的业务逻辑非常重要。其中之一是用户在哪里工作(他们的工作,是sql数据库中以ID为主键的一行)。用户可以在任何给定的时间在应用程序中选择一个(并且只有一个)。可以把它想象成一个个人资料——他们可以做很多工作,但只有一个被选中。

以下是了解workplaceid配置文件很重要的场景:

  1. 在我的sqlite数据库中,基于当前选择的工作ID检索工作/班次信息(因此不是来自数据库的ID,而是他们当前选择的ID)。我把这个传递到我的查询。
  2. 在NSDate扩展函数中,当我去确定他们的开始日期时,我需要检索他们当前选择的配置文件,并使用它进行计算。
  3. 在一个特定的视图模型中,当我想要显示/隐藏某些字段时。
  4. 在警告视图中显示与当前工作场所相关的内容。
现在我认为快速而肮脏的方法是简单地在实用程序类中为您的nsuserdefaults创建一个包装器类。当然,你的所有信息都存储在sqlite中,但你当前选择的应用程序首选项是在nsuserdefaults,因为我可以改变这一点(它会改变)。这将平行于我的其他横切关注点,如日志/错误处理,我可以在所有工作中使用类似的实用程序类。

我可能会从应用程序的每一层调用这个helper/utility类,这似乎是一个典型的危险信号,您不会这样做。无论是日志记录,还是获取信息的用户服务。

我很想知道其他人在这种情况下会怎么做。当你需要整个应用的nsuserdefaults时,答案是"谁在乎呢,只要做一个实用程序类,然后在你需要的地方调用它"?或者是否存在其他设计良好的iOS应用所遵循的最佳实践?我知道人们倾向于推荐AOP。这在iOS中有一席之地吗?

谢谢stackoverflow:)

允许用户在任何给定时间选择应用程序中的一个(且只有一个)。

这告诉我你想创建一个单例类。每次想要更改配置文件时,都要点击单例类并设置它。该类封装了获取/设置所需的所有逻辑以及访问器函数。这就是我多年来一直在我的ObjC代码中做的事情,它对我很有帮助。它非常容易调试,其余代码不需要了解配置文件管理(除非是选择配置文件的UI部分)。

相关内容

  • 没有找到相关文章

最新更新