当对象为键("Id")ID不存在时崩溃?



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

相关内容

  • 没有找到相关文章

最新更新