使用的appdelegate为所有人创造viewcontrollers
问题描述:
我想知道在IOS斯威夫特火力地堡CRUD方法,如果这是最好的做法,是否会引起任何问题,我的IOS应用程序快捷,请注意,这是我第一次创造了全丰富的IOS应用程序,我主要有一个Web应用程序背景。使用的appdelegate为所有人创造viewcontrollers
我注意到我正在为不同功能(聊天,匹配用户,显示用户和Facebook朋友的信息)以及使用Firebase进行CRUD任务,因为我很容易存储我的实时数据,对于每个ViewControllers,我都有类似的功能来提取或更新Firebase数据,但使用不同的数据。
我也注意到,我可以使用以前在通过UIApplication类的AppDelegate.swift文件中声明功能。我可以在AppDelegate.swift中事先使用工厂样式声明函数(即:如果获取这些数据,否则如果获取其他数据),然后调用我的这些方法其他ViewControllers?
我主要关注的是我对AppDelegate的一般不熟悉,我知道我该如何实现这一点,并且AppDelegate像通知中心一样运行,但是会出现延迟或数据丢失?
请注意,这主要是因为我试图重构并在某种程度上清理了我的代码,并且我注意到,只是更改Firebase的数据结构可能会对这些功能的获取和更新数据产生负面影响,而且这会更容易从一个位置而不是所有ViewController中更改函数。
答
感谢JustinM(请参阅上述注释),我使用https://github.com/Moya/Moya创建了一个FirebaseDB.swift图层,该图层用作查询和存储用户数据等到Firebase中的单层图层。没有诉诸使用AppDelegate.swift
你应该创建一个单独的系统来处理网络请求。绝对不要放在AppDelegate中。查看Alamofire路由器设置或Moya框架的一些很好的例子。可能需要更长的时间来建立,但将会使你的代码更清洁 – JustinM
事情是这样的:https://github.com/Alamofire/Alamofire#crud--authorization? Moya更受欢迎吗?它已经从它的样子 – mding5692
这真是你的一部分,我刚刚上市的一些例子来看看偏好的Alamofire层。你也可以创建一个类来保存你的网络功能,如果你想让它成为一个单身人士。在这里有很多东西可以查看关于这个主题,但至少你应该有一个单独的类来保存你的网络代码,这样就可以在一个地方完成,而且不会在多个视图控制器中重写相同的代码。 Moya使用alamofire来提出请求,它做的是组织如何设置请求。这是一个更先进一点,虽然 – JustinM