Могу ли я использовать делегат в enum? (Swift) - PullRequest
0 голосов
/ 12 июня 2019

Я пытаюсь использовать значение из ViewController в enum. Я не уверен, но единственное, о чем я могу думать, - это использование протокола / делегата, что кажется плохой идеей ...

Прямо сейчас желаемое значение объявлено глобально, поэтому оно прекрасно работает в приведенном ниже коде ... но я не хочу объявлять его глобально и хотел бы объявить его в ViewController.

import Foundation

enum FIRCollectionReference: String {
    case users
    case chatList
    case chatData
    case templateReply

    func goToLayer() -> String {
        switch self {
        case .chatData:
            return "users/\(myDocId)/chatData"
        case .templateReply:
            return "users/\(myDocId)/chatData"
        default:
            return self.rawValue
        }
    }
}

Есть предложения?

1 Ответ

0 голосов
/ 12 июня 2019

Создайте method in enum FIRCollectionReference, который принимает Int (myDocId), т.е.

enum FIRCollectionReference: String {
    case users
    case chatList
    case chatData
    case templateReply

    func goToLayer(_ myDocId: Int) -> String {
        switch self {
        case .chatData:
            return "users/\(myDocId)/chatData"
        case .templateReply:
            return "users/\(myDocId)/chatData"
        default:
            return self.rawValue
        }
    }
}

Использование:

let reference = FIRCollectionReference.chatData
print(reference.goToLayer(1234))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...