im在我的iOS应用程序中使用alamofire作为HTTP请求。当我访问响应值时,例如在Swift中进行响应时,如果键不存在或获得空值时,它会崩溃。
var id = (response.result.value?[p-1].objectForKey("Id"))! as? Int
通常,我们如何检查Swift中不存在的值?
您应该尝试此
if let id = (response.result.value?[p-1].objectForKey("Id"))? as? Int {
// some stuff
}
您的应用程序正在崩溃,因为您解开了无包装的对象:.ObjectForkey(" id")
您必须在不强制的情况下解开选项。在您的情况下,您还应该考虑检查response.result.value
是否至少具有p-1
元素:
if let value = response.result.value
{
if p-1 < value.count
{
if let id = value[p-1].objectForKey("Id") as? Int
{
// Do whatever you want with id
}
}
}
您也可以使用我个人发现更清晰的guard
语句:
guard let value = response.result.value
else { return }
guard p-1 < value.count
else { return }
guard let id = value[p-1].objectForKey("Id") as? Int
else { return }
// Do whatever you want with id