使用枚举存储来自api的结果数据

您好,我从Big Nerd Ranch的书中学习了iOS开发,我按照书指南学习了如何从网络上处理数据。现在,我想在自己的应用程序中实现它,但是由于这本书只显示了如何处理图像数据。我不仅要处理图像数据,还要处理字符串数据(这是我模型的标题),我已经尝试使枚举变成通用的,以便它可以返回任何类型。这是我的代码

这是我更改为通用名称之前的枚举

imp.get_suffixes()

这是我转换为泛型之后的枚举

enum ImagesResult {
    case success(UIImage)
    case failure(Error)
}

这是fetchImageData函数

enum Results<Value> {
    case success(Value)
    case failure(Error)
}

在已经存储在结果常量中的会话数据任务之后,如何添加字符串和图像以传递到文本标签中

ioublack 回答:使用枚举存储来自api的结果数据

枚举结果已经存在,“一个代表成功或失败的值,在每种情况下都包括一个关联的值。”。您可以创建自己的错误枚举以匹配所有错误情况,如下所示:

enum MyErrorEnum: Error {
    case myerror1
    case myerror2(String)

    var errorDescription: String {
        switch self {
        case .myerror1:
            return "Error: Error 1 description."
        case .myerror2(let error):
            return error
        }
    }
}

您的完成处理程序中的结果将是:

completion: @escaping (Result<(UIImage,String),MyErrorEnum>) 

为了让您返回图像和标题

本文链接:https://www.f2er.com/3169099.html

大家都在问