- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个正在开发的 Swift 应用程序,它允许用户保存有关其个人资料的各种设置。在我的代码中,有时了解这些设置/首选项对于应用程序的业务逻辑很重要。其中之一是用户工作的地方(他们的工作,(这是 sqllite 数据库中以 ID 作为主键的一行)。允许用户在任何给定时间在应用程序中选择一个(并且只能选择一个) . 把它想象成一个个人资料 - 他们可以从事很多工作,但只能选择一个。
以下是了解 workplaceid 配置文件很重要的场景:
现在我认为快速而肮脏的方法是在实用程序类中为您的 nsuserdefaults 创建一个包装类。当然,你的所有信息都存储在 sqllite 中,但你当前选择的应用程序首选项在 nsuserdefaults 中,因为我可以改变它(它会改变)。这与我的其他横切关注点类似,例如日志记录/错误处理,我可以在其中使用类似的实用程序类来完成我的所有工作。
事实上,我可能会从我的应用程序的每一层调用这个帮助器/实用程序类,这似乎是一个典型的危险信号,您不会这样做。无论是日志记录,还是获取信息的用户服务。
我很想知道在这种情况下其他人在做什么。当你需要来自你所有应用程序的 nsuserdefaults 时,答案是“呃谁在乎,只需创建一个实用程序类并在你需要的任何地方调用它”?或者是否有其他人在精心设计的 iOS 应用程序中遵循的最佳实践?我知道 AOP 是人们倾向于推荐的东西。这在 iOS 中有一席之地吗?
非常感谢 stackoverflow :)
最佳答案
The user is allowed to select one (and only one) in the app at any given time.
这告诉我你想创建一个单例类。每次你想更改配置文件时,你都会点击单例类并进行设置。该类封装了获取/设置所需的所有逻辑以及访问器函数。这就是我多年来在我的 ObjC 代码中所做的事情,它对我很有帮助。它非常容易调试,其余代码无需了解配置文件管理(除非是您选择配置文件的 UI 部分)。
关于iOS 横切问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25213977/
我是一名优秀的程序员,十分优秀!