В документации 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?