Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >iOS横切关注点

iOS横切关注点
EN

Stack Overflow用户
提问于 2014-08-08 16:12:55
回答 1查看 273关注 0票数 0

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

以下是了解工作场所配置文件非常重要的场景:

  1. 在我的sqllite数据库中,根据当前选择的工作ID (不是数据库中的ID,而是他们当前选择的ID)检索工作/轮班信息。我把这个传递到我的查询中。
  2. 在NSDate扩展函数中,当我确定它们的开始日期时,我需要检索它们当前选定的配置文件,并将其用于计算。
  3. 在特定视图模型中,当我要显示/隐藏某些字段时。
  4. 在一个警觉的视图上显示与他们当前工作场所有关的东西。

现在,我认为快速和肮脏的方法是简单地为实用程序类中的nsuserdefaults默认值创建一个包装类。当然,您所有的信息都存储在sqllite中,但是您当前选择的应用程序首选项是nsuserdefaults默认值,因为我可以更改它(而且它会改变)。这将与我的其他横切关注点类似,比如日志记录/错误处理,在这里,我可以在所有工作中使用类似的实用程序类。

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

我很想知道在这种情况下其他人在做什么。当你需要整个应用程序的nsuserdefault时,答案是“嗯,谁在乎呢,只要创建一个实用程序类,并在需要它的地方调用它”吗?或者,是否有其他人在精心设计的iOS应用程序中遵循的最佳实践?我知道AOP是人们倾向于推荐的东西。那在iOS里有位置吗?

谢谢如此多的堆栈溢出:)

EN

回答 1

Stack Overflow用户

发布于 2014-08-09 06:10:31

用户可以在任何给定的时间选择应用程序中的一个(和一个)。

这告诉我您想要创建一个单例类。每次您想要更改配置文件时,都会按单例类并设置它。该类封装了所有获取/设置所需内容的逻辑,以及访问器函数。这就是我多年来在我的ObjC代码中所做的工作,它为我提供了很好的服务。它非常容易调试,其余的代码不需要了解概要文件管理(除非它是您选择概要文件的UI部分)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25213977

复制
相关文章
android attrs获取_关于Android attrs 自定义属性的说明
写个自定义控件时经常要自定义一些自己的属性,平时用的都是那几个,今天就顺便一起总结一下这个东东吧~
全栈程序员站长
2022/11/02
1K0
python attrs_Python attrs作用是什么?
class CommentSerializer(serializers.Serializer):
全栈程序员站长
2022/11/02
3970
android中怎么在View构造的attrs中拿到android给的属性以及attrs属性介绍[通俗易懂]
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
全栈程序员站长
2022/11/02
1.3K0
android 参数 attrs.xml,android – 定义自定义attrs
传统的方法充满了样板代码和笨拙的资源处理。 这就是我制作Spyglass框架的原因。 为了演示它是如何工作的,这里有一个示例,展示如何创建一个显示字符串标题的自定义视图。
全栈程序员站长
2022/09/27
5450
Unable to find chromedriver...AttributeError: ‘NoneType‘ object has no attribute ‘get‘
Unable to find chromedriver…AttributeError: ‘NoneType’ object has no attribute ‘get’
谙忆
2021/01/19
7910
android 自定义控件 attrs,android 使用attrs自定义控件
1、在values下新建一个attrs.xml的资源文件(my_attrs.xml)
全栈程序员站长
2022/11/02
8440
vue $attrs的使用
在上面提过,如果给子组件传递的数据,子组件不使用props接收,那么这些数据将作为子组件的特性,这些特性绑定在组件的HTML根元素上,在vue2.40版本之后,可以通过inheritAttrs = false 来控制这些特性是否显示在dom元素上 如:案例中父组件给子组件传递的row和isShow,子组件没有使用props接收,这个2个数据直接作为HTML的特殊属性。子组件使用inheritAttrs = true,那么特性显示在dom上,如果设置为false,那么特性不显示在dom上
全栈程序员站长
2022/11/02
1.4K0
vue $attrs的使用
vue组件通讯之$attrs
我们会遇到这样的场景,比如对element-ui的el-table组件进行二次开发,但是el-table组件有很多属性比如控制高度的height,传入数据的data还有border、size、fit等一个个的去传显然不大现实,这个使用用$attrs处理起来就会特别优雅。
全栈程序员站长
2022/11/02
3850
python attrs_一直比较疑惑python中关于attrs的问题
links = getLinks(“/wiki/Python_(programming_language)”)
全栈程序员站长
2022/11/02
4290
Vue - 组件通信之$attrs、$listeners
vue通信手段有很多种,props/emit、vuex、event bus、provide/inject 等。还有一种通信方式,那就是 $attrs 和 $listeners,之前早就听说这两个api,趁着有空来补补。这种方式挺优雅,使用起来也不赖。下面例子都会通过父、子、孙子,三者的关系来说明使用方式。
WahFung
2020/08/22
1K0
AttributeError: NoneType object has no attribute‘’
AttributeError: ‘NoneType’ object has no attribute ‘text’
狼啸风云
2020/10/09
3.5K0
vue的$attrs_vue获取list集合中的对象
原文网址:Vue–attrs, listeners–使用/教程/实例_IT利刃出鞘的博客-CSDN博客
全栈程序员站长
2022/09/27
5.2K0
Python爬虫之携程网笔记一
前两天看了许久BeautifulSoap,想找个网站挑战一下,刚好想到之前曾经爬过携程网,想爬一下酒店信息试一下,没想到刚尝试就碰到了钉子。
python与大数据分析
2022/03/11
4630
AttributeError: 'NoneType' object has no attribute 'append'
附加列表元素时发生的错误,去掉赋值,把第四十行改为re_bb_area.append(proportion)
狼啸风云
2019/05/15
2.7K0
AttributeError: 'NoneType' object has no attribute 'append'
Vue 新增的$attrs与$listeners的详解
inheritAttrs:默认值true,继承所有的父组件属性(除props的特定绑定)作为普通的HTML特性应用在子组件的根元素上,如果你不希望组件的根元素继承特性设置inheritAttrs: false,但是class属性会继承(简单的说,inheritAttrs:true 继承除props之外的所有属性;inheritAttrs:false 只继承class属性)
tianyawhl
2019/04/04
2.7K0
Vue中 $attrs、$listeners 详解及使用
传送门:Vue中 子组件向父组件传值 及 .sync 修饰符 详解 传送门:Vue中 状态管理器(vuex)详解及应用场景 传送门:Vue中 事件总线(eventBus)详解及使用 传送门:Vue中 provide、inject 详解及使用
全栈程序员站长
2022/11/02
1.6K0
Python3网络爬虫(七):使用Beautiful Soup爬取小说
本文总结了一些常见的网络爬虫和反爬虫技术,并介绍了一种基于Python的爬虫程序。该爬虫程序可以爬取指定网站的文章内容,并支持对某些网站的反爬虫策略。同时,还介绍了一种基于Web的爬虫程序,该程序可以爬取网站的文章列表,并支持对某些网站的反爬虫策略。
Jack_Cui
2018/01/08
4.5K0
Python3网络爬虫(七):使用Beautiful Soup爬取小说
在 Vue 中,使用 $attrs 构建高级组件
这节课,我们来看下 Vue3 中的 $attrs 属性。首先,我们会介绍它的用途以及它的实现与 Vue2 有哪些不两同点,并通过事例来加深对它的理解。
前端小智@大迁世界
2022/10/27
2.5K0
在 Vue 中,使用 $attrs 构建高级组件
Vue中的$attrs和$listener的使用
疫情之前,在家关了这么久,也没怎么更新,最近在看大佬的项目,学习下新的思路。之前项目上,父子组件传递数据,都是用props去接收和this.emit触发父组件方法。这次我们用attrs和
青年码农
2022/05/31
1.2K0
Vue中的$attrs和$listener的使用
每天一道 python 面试题 - Python中的元类(metaclass)
虽然在Python中您可以对元类使用任意可调用对象(例如Jerub演示),但是更好的方法是使其成为实际的类。type是Python中常见的元类。type它本身是一个类,并且是它自己的类型。您将无法type纯粹使用Python 重新创建类似的东西,但是Python有点作弊。要在Python中创建自己的元类,您实际上只想将其子类化type。
公众号---人生代码
2020/05/16
9420

相似问题

AspectJ、Spring AOP和JBoss AOP在异常处理方面的比较

11

我们可以将AOP方面应用于多个maven项目吗?

12

AOP +同步

12

Python中面向方面编程(AOP)

24

spring中的AOP方面警告

12
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文