我已声明错误类型
enum UserServicesError: ErrorType {
case UserNotLogged
}
但是我收到了错误
Argument type 'UserServicesError' does not conform to expected type 'ErrorType'
Type 'UserServicesError' does not conform to protocol 'RawRepresentable'
知道吗?官方文件说这个声明就足够了。
答案 0 :(得分:2)
我终于明白了。我已经在pre-swift年代的objective-c共享类中声明了枚举ErrorType。
typedef NS_ENUM(NSUInteger, ErrorType) {
...
};
我希望看到Redefined type error
而不是does not conform to protocol 'RawRepresentable'
答案 1 :(得分:1)
你是否有机会使用UserServicesError
使用Cocoa类?如果是这样,Using Swift with Cocoa and Objective-C guide的错误子部分表明它应该被声明为:
@objc enum UserServicesError: Int, ErrorType {
case UserNotLogged
}
与Objective-C Cocoa对象交互的任何协议都需要@objc
指定。符合Int
(或其他RawRepresentable
- 符合类型)会自动获得RawRepresentable
一致性(而不是保留纯粹的Swift enum
)。
我希望这会有所帮助。如果确实如此,请告诉我是否需要修复它。我很好奇。 : - )