问题标签 [swinject]

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 回答
133 浏览

swift - 使用 swinject 注册具有关联类型的协议时出现问题

我想开发一个使用核心数据和领域的存储库模式的应用程序。我想根据我的需要解决协议。目的是在程序集中注入一个通用的核心数据存储库/领域存储库协议。

这条线出现问题说Protocol 'SleepRepositoryProtocol' can only be used as a generic constraint because it has Self or associated type requirements

由于使用通用(关联类型)属性,我无法注入睡眠存储库协议。我怎么解决这个问题?

另外,非常感谢您的回复。它真的帮了我很多。我对此还有一个问题。

var 存储库:SleepRepositoryProtocol

这给了我错误“协议 'SleepRepositoryProtocol' 只能用作通用约束,因为它具有 Self 或关联的类型要求”,我不知道如何解决我的 SleepRepositoryProtocol。

0 投票
0 回答
707 浏览

swift - 构建失败任务失败,退出代码 65

我正在开发一个使用 Carthage 的项目,距离上次打开该项目已经有几个月了。现在我正在尝试将依赖项移动到,.xcframeworks因为旧的.framework,它不起作用。我遇到了各种错误并修复了它们,但是有一个我无法修复的依赖项 SwinjectStoryboard 。


我尝试使用此解决方法设置命令行工具

在此处输入图像描述

我也尝试过创建一个只有SwinjectSwinjectStoryboard依赖的空项目

但是,我的构建仍然失败,并显示以下消息

构建失败任务失败,退出代码为 65:/usr/bin/xcrun xcodebuild -project /Users/abu/Developer/xcframework_2/Carthage/Checkouts/SwinjectStoryboard/SwinjectStoryboard.xcodeproj -scheme SwinjectStoryboard-iOS -configuration Release -derivedDataPath /Users/abu /Library/Caches/org.carthage.CarthageKit/DerivedData/12.5_12E262/SwinjectStoryboard/2.2.0 -sdk iphoneos ONLY_ACTIVE_ARCH=NO CODE_SIGNING_REQUIRED=NO CODE_SIGN_IDENTITY= CARTHAGE=YES archive VALIDATE_WORKSPACE=NO -archivePath /var/folders/g9/rjxrgn/6dpc7d2s0000 T/SwinjectStoryboard SKIP_INSTALL=YES GCC_INSTRUMENT_PROGRAM_FLOW_ARCS=NO CLANG_ENABLE_CODE_COVERAGE=NO STRIP_INSTALLED_PRODUCT=NO FRAMEWORK_SEARCH_PATHS=$(继承)
/var/folders/g9/rjxzfx7d2s51_sr6stdkpc5c0000gn/T/carthage-xcframework-HTlC(在 /Users/abu/Developer/xcframework_2/Carthage/Checkouts/SwinjectStoryboard 中启动)

这通常表明项目本身无法编译。请查看 xcodebuild 日志以获取更多详细信息:/var/folders/g9/rjxzfx7d2s51_sr6stdkpc5c0000gn/T/carthage-xcodebuild.Tafjce.log

我正在运行以下命令来构建依赖项

carthage.sh update --use-xcframeworks --platform iOS

这是我的 Cartfile 的内容

github“Swinject/Swinject”

github“Swinject/SwinjectStoryboard”

我被困在这个问题上几天了,希望有任何帮助

0 投票
0 回答
23 浏览

swift5 - SWINject Graphidentifiers 的预期生命周期是什么

我会开始说我对 Swinject 没有经验。

我试图弄清楚为什么Swinject.graphIdentier实例在我的应用程序中不断增长。

在我的情况下,当我输入 ViewController 时,我创建了nMyClass. 每次访问屏幕时,n可以是不同的数量。

当我离开视图控制器时,所有实例MyClass都被释放(通过观察分配分析器证明)。

我不明白的是为什么实例Swinject.graphIdentier继续增长。

是否应该清理 swinject 中的 GraphIdentifers,如果是,我该怎么做?

在此处输入图像描述

下面是我的代码的一个精简的、人为的示例。

0 投票
0 回答
53 浏览

swift - VIPER + Swinject 中的路由器导航

我有mainAssembly

以两个模块为例:

这里是ProfileAssembly

一切正常,但我不知道如何配置我的路由器导航到另一个模块:

在 Swinject 之前,我使用过线框图,其中我有类似build()函数的东西来返回特定的 VC。但是由于我的程序集位于主汇编程序容器中,我是否应该从我的应用程序中的任何路由器直接访问主汇编程序?

0 投票
0 回答
22 浏览

swift - 从 UI 测试应用新程序集不会更改返回的实例

我尝试从 UI 测试更改已注册的协议,但它没有改变。我在这里做错了什么?
我有一个共享的 DIAssembler,它使用程序集管理依赖关系,如下所示:

生产和测试组件具有相同的结构,我只更改创建的实例

有时我想在操作发生后从 DI 更改返回的实例。所以我尝试应用一个新的程序集来更改注册的实例,但它总是返回以前的实例PaymentsApiClient而不是TestingPaymentsApiClient