Ios 检查nskeyedunachiver是否返回nil

Ios 检查nskeyedunachiver是否返回nil,ios,swift,nskeyedarchiver,Ios,Swift,Nskeyedarchiver,我需要做一个if语句,它基于一个变量是否已存档。我的做法如下: if NSKeyedUnarchiver.unarchiveObjectWithData(encodedNotif) == nil { } 但如果'encodedNotif'为零,我会得到: fatal error: unexpectedly found nil while unwrapping an Optional value 错误 那么我该怎么做呢?您需要检查它,简单地说: if endodedNotif != nil {

我需要做一个if语句,它基于一个变量是否已存档。我的做法如下:

if NSKeyedUnarchiver.unarchiveObjectWithData(encodedNotif) == nil {
}
但如果'encodedNotif'为零,我会得到:

fatal error: unexpectedly found nil while unwrapping an Optional value
错误


那么我该怎么做呢?

您需要检查它,简单地说:

if endodedNotif != nil {
  if NSKeyedUnarchiver.unarchiveObjectWithData(encodedNotif) == nil {
  }
}

这不起作用,因为encodedNotif最初是nil,并且在单击按钮时被分配了一个值,如果encodedNotif是nil,那么代码将失败,因为您尝试将nil指针传递给unarchiver。因此出现了错误消息。@AlexCatchpole:在调用unarchiveObjectWithData之前,需要检查nil