我正在使用一个允许用户连接到Instagram并与之断开连接的快速应用程序。用户连接后,我将访问令牌存储在名为instagramCredentials的列下的PFUser类中。
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
}
但我在运行时收到错误
致命错误:在解包可选值时意外发现nil
我做错了什么?
答案 0 :(得分:2)
你应该做这样的事情,你应该学习这种代码格式。它是 Swift 的基础:
if let isConnected = user["instagramCredentials"] {
instagramIsConnected = true
} else {
instagramIsConnected = false
}
您可以在 Apple 的 Swift 教程中找到名为“If Statement and Forced Unwrapping”的主题。
答案 1 :(得分:1)
swift 4 update
if (object["instagramCredentials"]) == nil {
//does not exist
} else {
//does exist
}
答案 2 :(得分:0)
您应该将用户[" instagramCredentials"]定义为带问号的可选项。 - >用户[" instagramCredentials"]?只有选项可以是零,而且检查值是否为零是有意义的。