sách gpt4 ai đã đi

swift2 - 类型 'Error' 约束为非协议(protocol)类型,即使类型是协议(protocol)

In lại 作者:行者123 更新时间:2023-12-01 14:19:36 38 4
mua khóa gpt4 Nike

我尝试将 SignalType 从 ReactiveCocoa 扩展为自定义 ErrorType,代码如下所示

enum MyError: ErrorType {
// .. cases
}

extension SignalType where Error: MyError {
// my exetensions her
}

但是我一直收到这样的错误

Type 'Error' constrained to non-protocol type 'MyError'

这真的很奇怪,如果你看一下 ErrorType 定义

public protocol ErrorType {
}

既然它是一个协议(protocol),那么为什么编译器会提示它是一个非协议(protocol)类型,知道吗?

1 Câu trả lời

你是对的,但是 MyError 不是协议(protocol),错误就是这样说的。

当您使用此语法时:

extension SignalType where Error: MyError

您是说:任何 SignalType 的扩展,其 Lỗi 符合 MyError。但这是不可能的。你需要的是:

extension SignalType where Error == MyError

其中显示:SignalType 的扩展,其Lỗi Đúng MyError.

关于swift2 - 类型 'Error' 约束为非协议(protocol)类型,即使类型是协议(protocol),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35375755/

38 4 0
行者123
Hồ sơ cá nhân

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá Didi Taxi miễn phí
Mã giảm giá Didi Taxi
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com