Ios Swift/如何检查可选值的存在
我有一个Ios Swift/如何检查可选值的存在,ios,swift,Ios,Swift,我有一个NSDictionary的数组,名为deejayTweetsDictionary。在可选键likes中有NSDictionary的Array 现在我想检查:user==likes?.valueForKey(user)as!字符串 只要用户在喜欢的范围内,我的代码就可以正常工作。如果我使用另一个帐户登录-使用另一个用户,则应用程序会在以下情况下崩溃: if likes?.valueForKey(user) as! String == user { 如果likes是可选的,并且能够包含不
NSDictionary
的数组
,名为deejayTweetsDictionary
。在可选键likes
中有NSDictionary
的Array
现在我想检查:user==likes?.valueForKey(user)as!字符串
只要用户
在喜欢的范围内,我的代码就可以正常工作。如果我使用另一个帐户登录-使用另一个用户
,则应用程序会在以下情况下崩溃:
if likes?.valueForKey(user) as! String == user {
如果likes
是可选的,并且能够包含不同的用户
NSDictionary
,如何检查if语句
let tweets = deejayTweetsDictionary[indexPath.row]
let likes = tweets.valueForKey("likes")
let user = backendless.userService.currentUser.objectId
if likes != nil {
if likes?.valueForKey(user) as! String == user {
cell.liked = 1
} else {
cell.liked = 0
}
}
同样:likes
可能包含无穷多个[user:user]
问题:如果user
不在likes
范围内,如何检查if语句?非常感谢您的帮助。碰撞是由于线路中的强制展开造成的
if likes?.valueForKey(user) as! String == user {
试着这样做:
if let userExist = likes?.valueForKey(user) as? String where userExist == user {
//Do your work.
}
您必须使用此可选绑定或保护关键字。我不确定是否正确理解您的答案。你的应用程序在展开可选值时崩溃
// 1. Unwrap
if let likesUser = likes?.valueForKey(user) as? String {
if user == likesUser {
//...
}
}
// 2. Using guard
guard let likesUser = likes?.valueForKey(user) as? String else {
return
}
if likesUser == user {
//...
}
请阅读Swift语言指南中的“基础知识”一章,非常感谢您的努力,但另一个答案很容易让meGlad帮助您。