Похоже, что проблема вызвана изменениями в SignalR-Client-Swift API, ранее ожидалось два параметра типов [Any?] И TypeConverter, теперь он имеет ArgumentExtractor и несколько общих перегрузок c. В целом ваш новый код будет выглядеть примерно так:
private var connection: HubConnection
connection.on(method: "LocationBroadcast") { extractor in
let locationUpdate = try extractor.getArgument(type: [Dictionary<String, Any>].self)
self.locationUpdateReceived(locationUpdate)
}
private func locationUpdateReceived(_ locationUpdate: [Dictionary<String, Any>]) {
print("Location update recieved")
}
Однако он еще не скомпилируется, потому что для нового API требуется тип Decodable, поэтому вы не можете использовать Any здесь и изменить его на другой тип, поэтому код должен выглядеть так:
struct LocationInfo: Codable {
var value: String
}
private var connection: HubConnection
connection.on(method: "LocationBroadcast") { extractor in
let locationUpdate = try extractor.getArgument(type: [Dictionary<String, LocationInfo>].self)
self.locationUpdateReceived(locationUpdate)
}
private func locationUpdateReceived(_ locationUpdate: [Dictionary<String, LocationInfo>]) {
print("Location update recieved")
}