使用 ReactiveCocoa 获取 "use of undeclared type 'NoError'"
Getting "use of undeclared type 'NoError'" with ReactiveCocoa
我正在尝试学习 ReactiveCocoa 并且很难开始。 API 我一直遇到小问题,而且教程似乎很快就过时了。可能是我印象不对。
只是想跟this我好像没有NoError
.
它应该被正确导入,因为我可以访问 Signal
、rac_textSignal
等,但我不知道为什么 NoError 不可用。
他们的documentation mentions NoError
as well but that leads to a 404.
这个transition to RAC4也提到了NoError
。为什么 NoError
未声明?我正在使用 ReactiveCocoa 4.0.1.
编辑:我刚刚将 public enum NoError : ErrorType {}
添加到文件的顶部,现在可以使用了。我不确定这是否是解决问题的正确方法。指南和教程中没有提到我应该自己扩展 ErrorType
。
反应式 cocoa 原生 NoError
在 4.0.1 中被移除,取而代之的是 antitypicals implementation in Result
(adds NoError
to Result
, see this)。参见例如问题 #2704
我们可以在源文件中看到它的明确使用,例如
import enum Result.NoError
在 Property.swift.
因此,您可能需要在打算使用 NoError
时包含(反典型)Result
。问题线程中的一项建议修复是
public typealias NoError = Result.NoError
如果您将 "import Results" 添加到 class 上方的页面顶部,NoError 将不再是未声明的类型!
如果您现在使用 ReactiveSwift 6.0 看到这个,他们删除了对 Result 的依赖,从而删除了 NoError
。
根据他们的 release notes here,解决方案是现在使用 Never
。
- If you have used Result only as dependency of ReactiveSwift, remove
all instances of import Result, import enum Result.NoError or import
struct Result.AnyError and remove the Result Framework from your
project.
- Replace all cases where NoError was used in a Signal or
SignalProducer with Never
以下示例代码显示了现在的样子:
import ReactiveSwift
func example() -> SignalProducer<Void, Never> {
return SignalProducer(value: ())
}
我正在尝试学习 ReactiveCocoa 并且很难开始。 API 我一直遇到小问题,而且教程似乎很快就过时了。可能是我印象不对。
只是想跟this我好像没有NoError
.
它应该被正确导入,因为我可以访问 Signal
、rac_textSignal
等,但我不知道为什么 NoError 不可用。
他们的documentation mentions NoError
as well but that leads to a 404.
这个transition to RAC4也提到了NoError
。为什么 NoError
未声明?我正在使用 ReactiveCocoa 4.0.1.
编辑:我刚刚将 public enum NoError : ErrorType {}
添加到文件的顶部,现在可以使用了。我不确定这是否是解决问题的正确方法。指南和教程中没有提到我应该自己扩展 ErrorType
。
反应式 cocoa 原生 NoError
在 4.0.1 中被移除,取而代之的是 antitypicals implementation in Result
(adds NoError
to Result
, see this)。参见例如问题 #2704
我们可以在源文件中看到它的明确使用,例如
import enum Result.NoError
在 Property.swift.
因此,您可能需要在打算使用 NoError
时包含(反典型)Result
。问题线程中的一项建议修复是
public typealias NoError = Result.NoError
如果您将 "import Results" 添加到 class 上方的页面顶部,NoError 将不再是未声明的类型!
如果您现在使用 ReactiveSwift 6.0 看到这个,他们删除了对 Result 的依赖,从而删除了 NoError
。
根据他们的 release notes here,解决方案是现在使用 Never
。
- If you have used Result only as dependency of ReactiveSwift, remove all instances of import Result, import enum Result.NoError or import struct Result.AnyError and remove the Result Framework from your project.
- Replace all cases where NoError was used in a Signal or SignalProducer with Never
以下示例代码显示了现在的样子:
import ReactiveSwift
func example() -> SignalProducer<Void, Never> {
return SignalProducer(value: ())
}