Как проверить, что объект на Parse равен нулю в Swift?


Я работаю над приложением swift, которое позволяет пользователю подключаться и отключаться от instagram. После того, как пользователь подключился, я хранить маркер доступа в класс pfuser в столбец с именем instagramCredentials.

user["instagramCredentials"] = credentials["access_token"]
user.save()

Затем, если пользователь хочет отключиться от instagram, я удаляю маркер доступа.

user.removeObjectForKey("instagramCredentials")
user.save()

При загрузке представления я хочу установить логическое значение instagramIsConnected в false, если в instagramCredentials нет маркера доступа.

if user["instagramCredentials"] == nil {
        instagramIsConnected = false
} else {
        instagramIsConnected = true
}

Но я получаю ошибка во время выполнения

Фатальная ошибка: неожиданно обнаружен ноль при развертывании необязательного значения

Что я делаю не так?

3 2

3 ответа:

Вы должны сделать что-то вроде этого, вы должны изучить этот формат кода. Это основа Swift:

  if let isConnected = user["instagramCredentials"] {
     instagramIsConnected = true
  } else {
     instagramIsConnected = false
  }

Вы можете найти тему под названием "оператор If и принудительное разворачивание" в учебникеSwift изApple .

Обновление Swift 4

if (object["instagramCredentials"]) == nil {

//does not exist

} else {

//does exist

}

Вы должны определить пользователя ["instagramCredentials"] как необязательного с вопросительным знаком. - >пользователь ["instagramCredentials"]?. Только optionals может быть нулевым, и тогда имеет смысл проверить, является ли значение нулевым или нет.