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
}
Другие вопросы по тегам