我正在使用 NSPredicate
进行解析查询,以在 senderID
或 receiverID
时获取所有 objectIds
我的 Facebook id 是这样的吗:
let setPredicate = NSPredicate(format: "senderID = %@ OR receiverID = %@", fbID, fbID)
var query = PFQuery(className: "Groups", predicate: setPredicate)
query.addDescendingOrder("updatedAt")
然后,我将结果添加到 NSMutableDictionary
中,然后添加到 NSMutableArray
中,如下所示:
query.findObjectsInBackgroundWithBlock
{(objects:[AnyObject]?, error:NSError?) -> Void in
if error == nil
{
if let objects = objects as? [PFObject]
{
for object in objects
{
if setPredicate = NSPredicate(format: "senderID", fbID)
self.groupDetailsDict.setValue(object.objectForKey("objectId") as! String, forKey: "groupID")
self.groupDetailsDict.setValue(object.objectForKey("senderName"), forKey: "senderName")
self.groupDetailsDict.setValue(object.objectForKey("receiverName"), forKey: "receiverName")
self.groupDetails.addObject(self.groupDetailsDict)
}
}
else
{
println("Error: \(error) \(error!.userInfo)")
}
}
else
{
println(error?.description)
}
}
如果我的 fbID
与 senderId
匹配,我只想添加 receiverName
;如果我的 fbID
匹配,我只想添加 senderName
fbID
与 receiverName
匹配。
我可以在里面使用 if else 语句吗?如果是,那么如何?
最佳答案
不太明白你的逻辑,在第一种情况下比较 ID 与 ID,在第二种情况下比较名称与 ID,但如果我们假设 test
是我们的目标数组(抱歉,不太明白)理解 groupDetailsDict
的意思,也许你可以解释)代码看起来像这样(带有所有正确的快速展开):
if let senderId = object["senderId"] as? String, receiverName = object["receiverName"] as? String where senderId == fbID {
test.append(receiverName)
} else if let receiverName = object["receiverName"] as? String, senderName = object["senderName"] as? String where receiverName == fbID {
test.append(senderName)
}
关于ios - 使用 NsPredicate 解析查询后的 If 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31949980/