问题标签 [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 回答
405 浏览

ios - 是否可以使用 Typhoon 框架注入 NSManagedObject 实例?

我想用 Typhoon 框架注入 NSManagedObject 子类。我还没有看到这样的例子,但我认为这可能是可能的。

我正在使用 MO 生成器,并且在 NSManagedObject 和最终子类之间有一个超类。它在这个通用抽象基类中,如果这有什么不同,我想注入其中。

有没有人在这方面取得任何成功?

任何意见,将不胜感激。如果我可以提供更多信息,请告诉我。

0 投票
1 回答
153 浏览

ios - 使用大量 bean 更快地初始化 Typhoon 工厂

实际上,我的 4 个 Typhoon 组件中有大约 150 个组件。我在我的应用启动时使用这些程序集进行初始化TyphoonComponentFactory,它可能会很长,具体取决于组件的数量和 tagrget iDevice。

例如,组件工厂初始化在 iPhone4 上大约需要 1200 毫秒,在 iPhone 5S 上大约需要 600 毫秒。

有没有办法加快组件工厂初始化?

0 投票
1 回答
341 浏览

ios - 如何使用 TyphoonStoryboard 将数据从一个 ViewController 传递到下一个?

我有一个由故事板驱动的最简单的应用程序。

屏风

我们有一个UINavigationController, 和视图控制器 A 和 B。

A 有一个文本字段,用户应该在其中输入他们的姓名。当用户触摸一个按钮时,它会进入 B,显示“嗨,[NAME]!”

如何使用 Typhoon 将用户输入的名称从 A 传递到 B?

对于 Typhoon,我认为它可以让我避免使用-prepareForSegue:sender:,这从 DI 的角度来看是邪恶的,因为它需要在原本完全不相关的视图控制器之间进行耦合。(例如viewControllerB.nameToDisplay = self.textField.text;

0 投票
1 回答
460 浏览

ios - dyld_fatal_error with Typhoon+Swift+iOS7.x+Plist-bootstrapping

我在 Swift 项目中遇到了 Typhoon Framework 2.3.0 版的非常烦人的问题。

我在教程中提到的 Podfile 中包含了 Typhoon,安装了 Pod,创建了桥接头并添加#import <Typhoon/Typhoon.h>到了这个头中。

然后我创建了名为 ApplicationAssebly 的程序集子类:

如您所见,我想将该程序集注入 AppDelegate。我还在 Info.plist 文件中添加了 TyphoonInitialAssemblies 条目。在这一刻,我的问题开始了。我测试了一些导致 NSException 的组合:

无法解析名称 xxx 的程序集

这种组合是(typhtest是项目/包名称):

  • Info.plist 中的类名:ApplicationAssembly,在构建设置中定义模块属性:
  • Info.plist 中的类名:ApplicationAssembly,在构建设置中定义模块属性:
  • Info.plist 中的类名:typhtest.ApplicationAssembly,在构建设置中定义模块属性:
  • Info.plist 中的类名:typhtest.ApplicationAssembly,在构建设置中定义模块属性:

我在 StackOverflow 上找到了这个答案,所以我尝试了最后一种组合:

  • Info.plist 中的类名:_TtC8typhtest19ApplicationAssembly,在构建设置中定义模块属性:

这种组合不会抛出 NSException 但我有dyld_fatal_error,来自 iPhone 5s (iOS 7.1) 的堆栈跟踪如下:

iPhone 5s - iOS 7.1 错误堆栈跟踪

我从 iPhone 模拟器 (iOS 7.1) 得到的堆栈跟踪略有不同:

iOS 7.1 模拟器错误堆栈跟踪

它适用于 iOS 8.1 模拟器有什么奇怪的!Typhoon Sample Application for Swift也适用于我的设备。

我还尝试清理任何 Xcode 和项目缓存以及 DerivedData 目录,我已经清理了项目和构建文件夹并重建了项目,但它不起作用。我的 Xcode 版本是 6.1 (6A1052d),我正在使用 OSX Yosemite 10.10.1 。

带有我的代码的 GitHub 存储库:https ://github.com/papcio28/Typhoon-Dyld-Error

21.11.2014 已编辑

同样奇怪的是,如果我手动创建工厂并手动注入一些东西,Typhoon 就可以工作。我所做的步骤是:

  1. TyphoonInitialAssemblies从 Info.plist 中删除项目
  2. 更改AppDelegate.application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool

    /li>

但这并没有改变我想在不手动定义工厂的情况下使用 Typhoon 的事实,所以问题仍然存在。

0 投票
1 回答
115 浏览

typhoon - 台风注入参数在 arm64 中为零

我正在开发一个使用 Typhoon 框架的项目。这在模拟器和 arm7 架构中构建和运行良好。但是当我开始为 arm64 架构构建它时,它开始抱怨 Typhoon 属性是nil. 查找TyphoonInjectionByReference未设置的实际问题。

有没有人发现这种问题,哪里出错了。

[initializer injectParameterWith:[self aMethod]];

0 投票
1 回答
511 浏览

ios - Bridging-header.h 导致命令 /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swiftc 失败,退出代码为 1

如果我将此行添加到我的PROJECT-Bridging-Header.h文件中

Xcode 6.1 抛出此错误 /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swiftc failed with exit code 1

Typhoon 框架由 CocoaPods 添加,与教程中的完全一样

我尝试了几个想法,但没有任何帮助

  • 删除 XCODE 派生数据
  • 创建新项目
  • 删除并创建新的 bridging-header.h 文件
0 投票
1 回答
629 浏览

ios - Typhoon - 如何注入符合 PROTOCOL 而不是 CLASS 的参数

我有代表登录用户的类

它唯一的初始参数是符合Authenticator 协议的对象

在我的例子中,Auth 对象是类BackendService的实例

我的台风大会定义是:

应用程序导致运行时错误

如果我将 init 方法更改为 'initWithAuthenticator:' 它会崩溃

0 投票
1 回答
293 浏览

objective-c - 如何使用 Typhoon 将运行时参数传递给子组件?

假设我有两个班级FooBar. Bar我可以独立于构建 a Foo,但Foo需要 a Bar。在 Typhoon 中,我定义了这两个组件并在我的应用程序中使用它们,但是在运行时构建我传入的 a 似乎作为 a而不是我传入的Foo那个传递给另一个组件。barIdBar<TyphoonInjectionByRuntimeArgument: 0x15ea4670, type=Undifined>NSString

我可能做错了。

我应该怎么做?

更新:

进一步审查后,该问题似乎是由在定义中使用运行时参数为另一个定义构建另一个参数引起的。看下面的用法NSString

当被调用时,传入初始化器的路径将是"/some/path/to/baz/<TyphoonInjectionByRuntimeArgument: 0x15ea4670, type=Undifined>"

0 投票
1 回答
233 浏览

ios - 使用协议作为汇编接口时,Typhoon 初始化失败

我正在尝试将大型应用程序转换为使用协议而不是类作为程序集。这一切都相当简单,但它未能正确初始化。我已经追踪了这个问题。当 Typhoon 初始化程序集时,它会询问每个程序集的属性,如果它们是 Typhoon 类,则初始化它们。当我将键入的属性转换为 Typhoon 类时,效果很好;当我将该属性转换为协议类型时,Typhoon 不会将其识别为 Typhoon 类并且不会对其进行初始化并且初始化失败。

所有相关的 Typhoon 代码都在 [TyphoonAssembly init] 中的方法 resolveCollaboratingAssemblies 中。

这是示例代码:

这有效:

这不会:

在 Typhoon Init 过程中的某一时刻(方法 propertyForName:(NSString *)propertyName isCollaboratingAssemblyPropertyOnClass:(Class)class),代码会检查属性类型是否是 TypeAssembly 的子类。协议版本没有通过这个测试。

关于解决方法的任何想法?

0 投票
1 回答
386 浏览

ios - 测试目标中的 Swift Typhoon 错误 - 不是 Typhoon Assembly 的子类

我正在尝试使用示例项目设置 Typhoon 框架,当我运行模拟器时它工作正常,但是当我尝试运行测试时它给了我一个错误。错误如下:

NSInvalidArgumentException',原因:'Class 'DI_Example.MyAssembly' 不是 TyphoonAssembly 的子类'

现在,我在这里这里读到这是由于 CocoaPods 导致 Typhoon 包被链接两次造成的。所以这是我的 Podfile 似乎不应该将它链接两次

此外,当我将测试目标从应用程序样式更改为逻辑样式时,一切似乎都运行良好(我假设因为包没有导入两次)。谁能发现我在做什么的问题?

似乎在我的测试之前就抛出了错误,所以我猜它与链接两个目标有关

这是我的测试(如果我将主机应用程序设置为无,则通过