Как предполагает RX9, нет никаких причин (по крайней мере, как вы объяснили) пометить это как @objc
на уровне функций или протоколов.Следующее хорошо:
public protocol MazeProtocol: AnyObject {
static func configurations() -> [String:Selector]
}
Смысл @objc
- позволить объектам ObjC взаимодействовать с этим протоколом.Если у вас есть Objective-C, который должен взаимодействовать с этим протоколом, я настоятельно рекомендую определять этот протокол на стороне ObjC, а не на стороне Swift.(Но если у вас есть такой случай, оставьте комментарий, и мы сможем разобраться, как получить то, что вам нужно; как отмечает olejnjak, вы не можете поместить Selector непосредственно в словарь, понятный ObjC.