I am trying to learn ReactiveCocoa and have a hard time getting started. I keep hitting minor bumps as API and tutorials seems to be outdated quickly. Maybe I have the wrong impression.
Just trying to follow this I do not seem to have NoError
.
It should be imported correctly, since I have access to Signal
, rac_textSignal
etc. but I don't know why NoError is not available.
Their documentation mentions NoError
as well but that leads to a 404 .
This transition to RAC4 mentions NoError
as well. Why is NoError
undeclared? I am using ReactiveCocoa 4.0.1.
Edit: I just added public enum NoError : ErrorType {}
to the top of the file and it works now. I am not sure if this is a proper solution to the problem though. It is not mentioned in guides and tutorials that I should extend ErrorType
myself.
The reactive cocoa native NoError
was removed in 4.0.1 in favour of antitypicals implementation in Result
(adds NoError
to Result
, see this ). See eg issue #2704
We can see this explicitly used in the source files, eg
import enum Result.NoError
in Property.swift . Hence, you probably need to include (antitypicals) Result
whenever you intend to use NoError
. One suggested fix in the issue thread is
public typealias NoError = Result.NoError
如果将“导入结果”添加到类上方页面的顶部,NoError将不再是未声明的类型!
If you are seeing this now with ReactiveSwift 6.0 , they removed the dependency on Result , which removes NoError
.
Per their release notes here , the solution is to now use 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
The following example code shows how this should look now:
import ReactiveSwift
func example() -> SignalProducer<Void, Never> {
return SignalProducer(value: ())
}
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.