在 Swift 中,如何检查 Parse 上的对象是否为 nil?
How do I check if an object on Parse is nil, in Swift?
我正在开发一个 swift 应用程序,它允许用户连接到 Instagram 和断开连接。用户连接后,我将访问令牌存储在名为 instagramCredentials 的列下的 PFUser class 中。
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
}
但我在运行时遇到错误
fatal error: unexpectedly found nil while unwrapping an Optional value
我做错了什么?
你应该做这样的事情,你应该学习这种代码格式。这是Swift的基础:
if let isConnected = user["instagramCredentials"] {
instagramIsConnected = true
} else {
instagramIsConnected = false
}
您可以在 Swift 教程中找到一个名为 "If Statement and Forced Unwrapping" 的主题 Apple。
您应该将用户["instagramCredentials"]定义为带有问号的可选。 -> 用户["instagramCredentials"]?。只有可选值可以为 nil,检查一个值是否为 nil 才有意义。
swift 4 次更新
if (object["instagramCredentials"]) == nil {
//does not exist
} else {
//does exist
}
我正在开发一个 swift 应用程序,它允许用户连接到 Instagram 和断开连接。用户连接后,我将访问令牌存储在名为 instagramCredentials 的列下的 PFUser class 中。
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
}
但我在运行时遇到错误
fatal error: unexpectedly found nil while unwrapping an Optional value
我做错了什么?
你应该做这样的事情,你应该学习这种代码格式。这是Swift的基础:
if let isConnected = user["instagramCredentials"] {
instagramIsConnected = true
} else {
instagramIsConnected = false
}
您可以在 Swift 教程中找到一个名为 "If Statement and Forced Unwrapping" 的主题 Apple。
您应该将用户["instagramCredentials"]定义为带有问号的可选。 -> 用户["instagramCredentials"]?。只有可选值可以为 nil,检查一个值是否为 nil 才有意义。
swift 4 次更新
if (object["instagramCredentials"]) == nil {
//does not exist
} else {
//does exist
}