首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SWIFT2.1 ErrorType不符合协议RawRepresentable

SWIFT2.1 ErrorType不符合协议RawRepresentable
EN

Stack Overflow用户
提问于 2015-10-21 09:40:51
回答 2查看 2.3K关注 0票数 1

我已经声明了错误类型

代码语言:javascript
复制
enum UserServicesError: ErrorType {
    case UserNotLogged
}

但我犯了个错误

Argument type 'UserServicesError' does not conform to expected type 'ErrorType'

Type 'UserServicesError' does not conform to protocol 'RawRepresentable'

你有什么想法吗?官方文件说,这一声明就足够了。

Apple Swift 2.1错误处理文档

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-10-26 08:53:22

我终于想出办法了。我从早年起就在目标-c共享课程中声明了enum ErrorType。

代码语言:javascript
复制
typedef NS_ENUM(NSUInteger, ErrorType) {
   ...
};

我希望看到的是Redefined type error而不是does not conform to protocol 'RawRepresentable'

票数 2
EN

Stack Overflow用户

发布于 2015-10-21 17:36:55

你有机会在可可类中使用UserServicesError吗?如果是这样的话,使用Swift与Cocoa和Objective指南的错误小节建议应该这样声明:

代码语言:javascript
复制
@objc enum UserServicesError: Int, ErrorType {
    case UserNotLogged
}

任何与目标-C Cocoa对象交互的协议都需要@objc指定。遵循Int (或其他一些RawRepresentable-conforming类型)将自动获得RawRepresentable一致性(而不是将其保留为纯Swift enum)。

我希望这能帮到你。如果是这样的话,让我知道它是一种,另一种,或者两者都需要修复。我很好奇。:-)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33255833

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档