Я думаю, что если вы используете приведение следующим образом:
let result: [String : [String: Double]]? = dict as? [String : [String: Double]]
, но если вы не можете определить тип значения dict, но вам нужно найти значение, которое подходит, вы можете использовать эту функцию:
@inlinable public func compactMap<ElementOfResult>(_ transform: (Value) throws -> ElementOfResult?) rethrows -> [ElementOfResult]
как это:
let map = dict.values.compactMap { (value) -> [String : Double]? in
guard let valueMap = value as? [String: Any] else { return nil }
let filterResult = valueMap.filter { $0.value is Double }
return filterResult as? [String : Double]
}