问题标签 [typhoon]

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 投票
1 回答
739 浏览

objective-c - 像 Typhoon 这样的依赖注入可以替换多个单例吗?

我有一个应用程序,它在许多应用程序的方法和类中使用了大约 11 个不同的 Singleton 实例;它已经失控了,我想用依赖注入替换所有这些,比如 Typhoon。但是,我找不到任何文档、示例或提及如何用依赖注入替换单例,包括 Typhoon。例如,我是否使用多个 Typhoon 实例,将每个单例替换为 Typhoon 实例?

0 投票
1 回答
385 浏览

swift - UI测试的台风交换组件

在 iOS 上运行 UI 测试时是否可以交换或修补程序集?目前我有一个项目,我已经设置了 Typhoon 框架,我可以像这样修补程序集

这工作正常。TestManager它用存根修补。但在这种情况下,我手动调用我的视图控制器。当我运行 UI 测试(启动应用程序时在后台处理控制器)时,是否有办法修补程序集并提供模拟/存根?

例如,假设我有一个调用 Web 服务的视图控制器。Web 服务逻辑包装在一个单独的类中,并使用TyphoonAssembly. 现在对于我的 UI 测试,我不想联系我的实际 Web 服务,而只是证明了示例数据。我想通过创建我的 Web 服务类的存根并返回测试数据来做到这一点。这可以通过 Typhoon 框架实现吗,因为我无法做到这一点,也无法在任何地方找到示例。

我正在使用 Swift,但 Objective-C 答案也可以使用(只要它兼容)

0 投票
1 回答
172 浏览

ios - Swift - 使用运行时参数的选择器补丁定义

我正在尝试为使用运行时参数功能但没有运气的程序集中的选择器创建修补程序。有没有人解决过类似的问题,或者它还不能使用 Swift?

汇编中的方法定义如下所示:

我正在像这样创建 Patcher:

部分使用 Objective-C 的 PS 解决方案也将不胜感激

0 投票
1 回答
286 浏览

ios - 台风:故事板中的线循环依赖创建视图控制器

我正在从 TyphoonStoryboard 加载视图控制器,并且有一个可以正常工作的类的定义,注入了几个属性没有问题。然而,其中一个属性是一个视图,它本身有一个委托属性,我想成为视图控制器实例。当视图设置委托属性时,它会尝试创建视图控制器的新实例,而不是使用情节提要创建的实例。如何使委托属性使用视图控制器的当前实例?我的定义如下所示:

从我所见,视图控制器永远不能用作引用,因为它没有在任何地方添加共享引用,而 Typhoon 除了实例化一个新的之外别无选择?

0 投票
1 回答
395 浏览

objective-c - Swift 数组到 AnyObject 错误

我在尝试使用 swift 从函数返回数组时遇到多个错误。

如果我这样做:

我得到错误:Cannot convert the expression's type '$T11' to type 'AnyObject?'

注意,self.pageViewController1()返回 AnyObject? 和其他两个功能一样

如果我method.injectParameterWith(self.rootHomePageViewControllerPages)用这个函数替换那里的数组(创建一个数组):

我得到错误:Cannot convert the expression's type 'Array' to type 'AnyObject?'

无论我做什么,我都无法让函数正确返回([AnyObject]使用回放AnyObject?等)

基本上我要做的就是将数组注入到viewControllersof UIPageViewController,但是转换数组存在一些问题。

任何见解将不胜感激!

0 投票
1 回答
239 浏览

ios - TyphoonScopeObjectGraph 的工作原理

比方说,我有下面的代码

如果我使用TyphoonScopeObjectGraphfor customObj,它应该返回相同的实例。但是当我调试时,customObj属性与显示的不一样: 图片

据我了解,customObj应该temp3是同一个实例。但正如您在图像中看到的,customObj具有temp3相同的ObjectiveC.NSObject地址,但其所有属性 ( _shortFormatter, _longFormatter) 具有不同的地址。发生什么事?我们如何为customObj和获得相同的实例temp3。一个例子很有帮助。谢谢。

您可以从这里获取项目源代码

0 投票
1 回答
321 浏览

ios - 台风故事板:将 IBOutlet 视图注入到控制器依赖项

我有一个故事板,其中有一个使用插座连接到他的控制器的视图。在同一个控制器中,我想注入一个需要访问该视图的对象。我不想手动将该视图传递给对象,而是想自动注入它,但我不知道如何以及是否可以使用当前代码结构实现这一目标。

我认为这与运行时参数和循环依赖有关

0 投票
1 回答
298 浏览

ios - 台风注入一个引用并初始化它

Typhoon 中是否有可能在程序集文件中返回一个实例?

我想注入一个引用,AFHTTPRequestOperationManager然后设置响应和请求序列化程序。

我想我可以做这样的事情:

是否没有简单的选项可以返回这样的实例:

这种方法是错误的吗?

0 投票
1 回答
172 浏览

ios - 是否可以重用 Typhoon 中具有运行时参数的定义?

在我们的应用程序中,我们重用了一个基本视图控制器,它为我们的应用程序中的视图提供通用功能。它需要注入视图和视图模型。我在我们的程序集中创建了一个类似于以下内容的定义:

这里的想法是为所有不同的用途重用这个定义。我们可能会注入一个 SignUpView 和 SignUpViewModel:

我得到了一个相当搞笑的运行时异常:
*** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Congratulations you've tried to do something über-funky with Typhoon %). You are the 3rd person EVER to receive this error message. Returning a definition that is the result of a nested runtime argument is not supported. Instead unroll the definition.' *

我这样做的原因是因为我有这么多使用该 baseViewController 定义的定义,我希望能够重用它并注入不同的视图/视图模型,而不必到处重写该定义。台风不支持此功能吗?

0 投票
1 回答
117 浏览

objective-c - 使用 TyphoonAssemblyActivator 后从 UIStoryBoard 实例化视图控制器

使用带有接口的新 API 后TyphoonAssemblyActivator,我想实例化UIViewController位于 a 中的 a UIStoryBoard,但它错过了factory实例。

我该怎么做?