В следующем фрагменте показана общая переменная 'A'.
Я пытаюсь выяснить источник nil, возвращаемый этой загрузкой ().
Вот фрагмент кода:
final class Cache {
var storage = FileStorage()
// 1) 'load': Read from the Cache:
func load<A>(_ resource: Resource<A>) -> A? {
print("--- LOAD ---")
guard case .get = resource.method else { return nil }
// Type of 'data' is optional.
let diskData = storage[resource.cacheKey] // ...type: Data? (optional-Data).
// Want to convert diskData to A? (optional-A):
return diskData.flatMap(resource.parse) // ...cleaning data, removing nils.
}
// 2) 'save' to the Cache:
func save<A>(_ data: Data, for resource: Resource<A>) {
print("--- SAVE ---")
guard case .get = resource.method else { return }
self.storage[resource.cacheKey] = data
}
}
// ----------------------------------
// MARK: - Resource
public struct Resource<A> {
public var url: URL
public var parse: (Data) -> A? // ... convert Data to A?
public var method: HttpMethod<Data> = .get
public init(url: URL, parse: @escaping (Data) -> A?, method: HttpMethod<Data> = .get) {
self.url = url
self.parse = parse
self.method = method
}
}
// ----------------------------------
А пока, как я могу определить значение любой универсальной переменной во время выполнения отладки?
То есть, кому я могу определить значение A?
Примечание: код взят из общего источника через 'Swift Talk' на objc.io.