Привет, я изучаю разработку для iOS из книги Big Nerd Ranch, я учусь обрабатывать данные из Интернета, следуя руководству по книге. теперь я хочу реализовать его в своем собственном приложении, но поскольку в книге показано только, как обрабатывать данные изображения. Я хочу обработать данные не только изображения, но и строковые данные, которые являются названием моей модели, я уже пытаюсь превратить перечисление в универсальный, чтобы он мог возвращать любой тип. это мой код
Это enum, прежде чем я перехожу в универсальный
enum ImagesResult {
case success(UIImage)
case failure(Error)
}
это enum после того, как я перехожу в универсальный
enum Results<Value> {
case success(Value)
case failure(Error)
}
это функция fetchImageData
func fetchDataResult(for video: Video, completion: @escaping (Results<Any>) -> ()) {
guard let videoKey = video.videoID else {
preconditionFailure("Video expected to have a video id")
}
if let image = imageStore.image(forKey: videoKey) {
OperationQueue.main.addOperation {
completion(.success(image))
}
return
}
guard let videoURL = video.url else {
preconditionFailure("Video expected to have video url")
}
let request = URLRequest(url: videoURL)
let task = sessions.dataTask(with: request) { (data, response, error) in
let result = self.processImageRequest(data: data, error: error)
if case let .success(image) = result {
self.imageStore.setImage(image, forKey: videoKey)
}
OperationQueue.main.addOperation {
completion(result)
}
}
task.resume()
}
private func processDataRequest(data: Data?, error: Error?) -> Results<Any> {
guard
let imageData = data,
let image = UIImage(data: imageData) else {
if data == nil {
return .failure(error!)
} else {
return .failure(ThumbnailError.thumbnailCreationError)
}
}
return .success(image)
}
как я могу добавить строку и изображение для передачи в текстовую метку позже после задания данных сеанса, которое уже сохраняется в константе результата