Если вы перевернете то, что написали @Sh_Khan, у вас будет ответ:
let key : String? = nil
let data = try! NSKeyedArchiver.archivedData(withRootObject: ["test":key], requiringSecureCoding: false)
print(data) // 293 bytes
let res = try! NSKeyedUnarchiver.unarchiveTopLevelObjectWithData(data)
print(res) // Optional({ test = "<null>"; })
Он преобразует nil
значения в "<null>"
строки.