【发布时间】:2020-03-01 20:53:13
【问题描述】:
我正在尝试使用 URLSessions 来获取和发布数据。我在 Swift 上获取请求没有问题,只需发布即可。 I followed this 我有一个如下所示的可编码类:
class Item: Codable {
var _id: String?
var name: String = ""
var color: String = ""
var rating: Int = 0
init(name: String, color: String, rating: Int){
self.name = name
self.color = color
self.rating = rating
}
}
还有看起来像这样的json数据:
[ {
"_id" : "5e50a10c4ea5d87f0001c9da",
"name" : "Pepper",
"color" : "blue",
"rating" : 4
},
{
"_id" : "5e50a10c4ea5d87f0001c9db",
"name" : "Pepper",
"color" : "blue",
"rating" : 2
},
{
"_id" : "5e50a10c4ea5d87f0001c9dc",
"name" : "Pepper"
"color" : "blue"
"rating" : 6
}
]
我目前正在为我的数据库使用 restdb.io,并且已经使用 Postman 测试了我对所有 Get、Post、Put 等的请求。 在 Postman 上,当我使用 Json 正文创建一个仅包含名称、颜色和评级元素的 POST 请求时,它将生成一个唯一的 _id,而无需我指定。
当我在 Swift 上执行此操作并使用 init() 方法发送带有 Item 对象的发布请求时,我将 _id 作为类中的可选项,我的代码崩溃并显示“意外发现 nil,同时隐式解包 Optional 值”。我该如何解决这个问题?
【问题讨论】:
-
如果不查看您的代码,我猜您的 JSON 数据对于您的其他字段之一(名称、颜色或评级)的值为 nil。使用 Postman 查看您的回复,以确保所有必填字段都存在。
标签: swift decodable urlsession