Я рассмотрел множество связанных вопросов здесь, но ни один из ответов, похоже, не работает для меня прямо сейчас.
Для начала, у меня есть следующая функция, настроенная с помощью c тип возвращаемого значения, который должен соответствовать Decodable
.
func readFile<T: Decodable>(url: URL) -> T? {
do {
let data = try Data(contentsOf: url)
return try PropertyListDecoder().decode(T.self,
from: data) as T
} catch {
return nil
}
}
Я пробовал различные вызовы против него, но до сих пор Xcode продолжает возвращать код ошибки
Cannot explicitly specialize a generic function
После некоторых экспериментов Я пришел к следующему:
if let file: CodableStruct = readFile(url: url) as? CodableStruct {
// File is reported as the correct type here
// but I still get "Generic parameter 'T' could not be inferred"
}
Моя цель - хранить различные объекты, которые соответствуют Codable, и затем иметь возможность извлекать их с помощью вышеуказанной функции.