Struct не соответствует RawRepresentable протоколу?
У меня есть структура здесь, которая генерирует ошибки, когда Xcode пытается скомпилировать его
public struct GATToIPPermissions : OptionSet {
public init(rawValue: UInt)
public static var read: GATToIPPermissions { get {}}
public static var write: GATToIPPermissions { get {}}
public static var event: GATToIPPermissions { get {}}
public static var all: GATToIPPermissions { get {}}
}
Я получаю ошибку Type GATToIPPermissions does not conform to protocol RawRepresentable
, Тем не менее, я не получаю никаких указаний относительно того, почему он не соответствует.
Кто-нибудь из вас может определить проблему?
1 ответ
Тот синтаксис, который вы написали, это то, что вы будете использовать в protocol
, Если бы он был в протоколе, он объявил бы: "Соответствующие типы должны реализовывать инициализатор, называемый init(rawValue:)
и имеют геттеры для следующих свойств типа GATToIPPermissions
: read
, write
, event
, а также all
"
Но вы не собираетесь писать декларации в protocol
вы хотите написать реализацию в struct
и вот как это будет выглядеть:
public struct GATToIPPermissions : OptionSet {
public init(rawValue: UInt) {
//initialize self with `rawValue`
}
public static let read = GATToIPPermissions() //set me to the right value
public static let write = GATToIPPermissions() //set me to the right value
public static let event = GATToIPPermissions() //set me to the right value
public static let all = GATToIPPermissions() //set me to the right value
}