Я не думаю, что это имеет какое-либо отношение к замыканиям или выводам. Кажется, это простой вопрос типов и приведений.
Вы не можете «сбоку» привести AnyObject к Dictionary (или к чему-либо еще в этом отношении). Вы должны принудительно применить его, используя as!
Плюс, в Swift нет такой вещи, как простой и простой словарь, потому что это общий c. Самый общий тип словаря - [AnyHashable:Any]
.
Таким образом, начальное преобразование s
должно быть:
(s as! [AnyHashable:Any])
И по тому же признаку вы не можете «сбоку» отбрасывать результирующее значение взято из словаря; вы должны принудительно использовать его:
as! [AnyObject]
Теперь вы можете записать всю строку как:
return (s as! [AnyHashable:Any])["availabilities"] as! [AnyObject]
Конечно, то, что вы здесь делаете, кажется совершенно безумным; вы не должны ничего превращать в AnyObject. Но, возможно, это игрушечный пример, взятый из другого контекста, например, у вас есть JSON? Но в случае этого вы должны использовать Codable для организации JSON в реальные объекты.