首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >关于泛型的Swift - JSONEncoder

关于泛型的Swift - JSONEncoder
EN

Stack Overflow用户
提问于 2018-01-29 04:49:44
回答 1查看 1.3K关注 0票数 0

如何将泛型结构发送到返回JSON的函数?

我试图制作一个func,它将一个struct作为参数并返回一个JSON数据。我制作它是因为我想避免重复,它将在不同的地方和不同的结构中使用(例如:用户、客户端、联系人.)

代码语言:javascript
复制
struct User : Codable {
    let email: String
    let password: String
}

func makeJSONData<T>(_ value: T) -> Data {
    var jsonData = Data()
    let jsonEncoder = JSONEncoder()

    do {
        jsonData = try jsonEncoder.encode(value)
    }
    catch {
    }
    return jsonData
}

通过使用makeJSONData,我得到了一个错误:参数类型'T‘不符合预期类型'Encodable’

代码语言:javascript
复制
let user = User(email: emailTextField.text!, password : passwordTextField.text!)
let user2 = makeJSONData(user)
EN

回答 1

Stack Overflow用户

发布于 2018-01-29 05:16:01

因为你没有定义T的类型,所以只需改变

代码语言:javascript
复制
makeJSONData<T>

代码语言:javascript
复制
makeJSONData<T: Codable>
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48494560

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档