В документации Apple NSXPCInterface.setClasses(_:for:argumentIndex:ofReply:)
для Swift описан первый параметр в виде:
Набор NSSet, содержащий объекты класса, например [класс MyObject].
Хммм, похоже, кто-то забыл обновить это с Objective-C до Swift. Для Swift я предполагаю, что это должно быть что-то вроде
Набор, содержащий типы классов
(Кто-нибудь, пожалуйста, исправьте мою формулировку.) Но как создать множество, содержащее типы классов? Компилятор не позволит мне объявить Set
, типы членов которого не соответствуют Hashable
. Это имеет смысл, потому что хэши необходимы для сохранения уникальности среди участников. Но типы классов в Swift, похоже, не поддаются хешированию. Попробуйте это в любом файле Swift или на игровой площадке…
class Foo {}
let mySet: Set<AnyHashable>
mySet.insert(Foo)
Компилятор жалуется:
Тип аргумента "Foo.Type" не соответствует ожидаемому типу "Hashable"
Или, в более широком смысле, кто-нибудь знает, как использовать NSXPCInterface.setClasses(_:for:argumentIndex:ofReply:)
в Swift 5?