问题标签 [viper-architecture]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
58 浏览

ios - 如果使用 NSWindowsController,NSStoryboard 和 Nib 不会加载 NSObject

对于工作,我使用 Viper 架构并通过 NSObject 构建模块,我直接通过 Storyboard 或 Nib 连接。这很好用,但是如果你通过 NSViewController 连接到 segue NSWindowsControllers,应用程序会崩溃并出现错误,因为它没有被称为 NSObject。当然也有通过“storyboard.instantiateControllerWithIdentifier(identifier:)”来收集模块的选项,但是我想用Nibs,出现可选性错误。

所以看起来 NSStoryboard

GitHub 示例

0 投票
1 回答
116 浏览

ios - 在 VIPER 项目中启用 lightContent 状态栏样式

在以前的 Swift 版本中,要更改状态栏样式,我会使用“preferredStatusBarStyle”并返回 .lightContent。

这种方法现在不可用,我已经尝试了所有关于 SO 的解决方案,例如:

但是,这些技术不起作用。有人可以对此有所了解。目前在我的 plist 中,我将“statusBarStyle”设置为“UIStatusBarStyleLightContent”。

欢迎您在这里下载我的项目:https ://github.com/benskill/Flash-Flags

0 投票
1 回答
133 浏览

ios - iOS 中的 BLE 与 VIPER

我正在开发一个 iOS BLE 应用程序,一切都很好。我在一个单例类中处理 BLE,该类discoverPeripheral()在视图控制器的viewDidAppear(). 从那里我连接设备并交换数据。

现在我正在尝试在我的应用程序中实现 VIPER 架构,但我无法确定这个 BLE 部分将放置在哪里。因为目前我的 BLE 代码在视图显示时被激活。我想出了以下方案:将ble扫描放在presenter中,一旦视图进入内存,请求presenter开始扫描。演示者将要求 BLE 单例使用适当的 UUID 进行扫描,一旦收到数据,通知交互器将其存储到数据库中,然后更新 UI。

0 投票
3 回答
2366 浏览

ios - 如何让 Xcode 识别自定义模板

我一直在使用Generamba为 iOS 的 VIPER 架构下的每个模块创建模板文件。

它节省了大量时间,但仍然需要通过终端命令来运行 Generamba 并创建文件。有没有人知道如何将这些模板直接嵌入到 XCode 8 中?

0 投票
1 回答
2105 浏览

ios - VIPER 架构:标签栏控制器

我正在使用 VIPER,目前我有点迷茫。如何在 UINavigationController 中设置 UITabBarController 并将 viewControllers 添加到 UITabBarController?目前,我所有的代码都变得凌乱并一直崩溃。

我正在寻找 Swift 3 中的示例,有人可以指出我正确的方向吗?

0 投票
2 回答
288 浏览

ios - iOS中模型、视图和演示者的不同框架?

我是 iOS 开发的新手,所以如果我的问题听起来微不足道,请原谅我。

我打算介绍 MVP 或 VIPER 模式。我来自网络背景,在网络应用程序中,我们曾经遵循不同的层/dll(用于模型、视图、通用等)。在 iOS 中遵循相同的分层方法(在这种情况下为框架)是否有意义,或者它会矫枉过正?我没有遇到任何为模型、视图和演示者创建不同框架的示例项目(基于 MVP)?如果有人可以分享我们可以用作入门项目的任何示例项目(基于 MVP),那就太好了。

提前致谢

0 投票
2 回答
1569 浏览

ios - ViewController-Presenter-Interactor 是否应该具有一对一的关系

我正在阅读有关 VIPER 的内容,我的理解是 - 通常一个 viewController 与一位演示者相关,而一位演示者与一位交互者交谈。

但是,如果我们有主详细信息页面或列表详细信息页面怎么办。要显示项目列表,我将有一个控制器/演示者来显示列表,而另一个控制器/演示者来显示详细信息。并且 FetchList 和 FetchDetail 应该属于同一个交互器。

如果这两个演示者与这个交互者通信,他们将不得不实现 FetchList 和 FetchDetail 方法。这两种方法的实现之一将是空的。

0 投票
2 回答
2420 浏览

ios - IOS VIPER:协议如何帮助单元测试?

我对 VIPER 架构中协议的好处有点困惑。我了解 DI(依赖注入)是通过协议实现的,并有助于避免对象之间的直接依赖关系——我同意。

但是我正在从使用的角度来看一个真正的好处,一个例子可能是 - 特别是协议如何帮助在单元测试中受益(测试交互器部分)。

我们不能通过方法回调的 using 块来实现相同的目标吗?希望有人可以通过一些示例从使用角度帮助我理解

干杯

0 投票
2 回答
387 浏览

ios - TDD VS BDD:REST 服务

我都对 TDD 和 BDD 感到困惑 :) TDD 和 BDD 在以下各点有何不同?

  1. 开发:首先是测试用例,然后是开发
  2. RestService(HTTP):不打休息电话?如果是这样,

    a) 我们是否只使用模拟对象返回硬编码的 json?

    b) 如何处理 REST 调用失败?我们也应该有测试用例吗?

特别是对于第 2 项,我在谷歌上搜索了很多文章,但找不到关于如何处理休息呼叫的示例(代码)方法。

0 投票
1 回答
744 浏览

ios - 在 viewdidload() 内部调用时实例化的类为 nil

我正在尝试学习 VIPER 架构模型,但我无法弄清楚的一件事是当我执行以下操作时:

  1. 实例化promotionPresenter类
  2. 实例化promotionsViewController
  3. 分配promotionsViewController.presenter =(从步骤1实例化promotionPresenter类)
  4. 尝试从promotionviewController 类中的viewdidload() 函数内部访问实例化的presenter 类。
  5. 主持人是零。为什么主持人是零?我已经实例化了它。