NSPredicate通过名称传递“多个”参数[在Swift中]

曾是

是否可以通过命名多个参数而不是将多个参数传递给NSPredicate %@

例如,我有一个directly-passed参数meyou

public static func ConversationByUserId( userId : String ) -> [Message] {

    // Either Created By me and sent to you.
    // Or, created by you and sent to me


    let me = UserRepo.GetLoggedInUser()?.id

    var format = "( createdBy == '" + me! + "'  && createdTo == '"  +  userId + "') "
    format += " || ( createdBy == '" + userId + "'  && createdTo == '" + me! + "') "


    print(format)
    //prints: ( createdBy == '1'  && createdTo == '5')  || ( createdBy == '5'  && createdTo == '1')


    let predicate = NSPredicate(format:  format)

    return Filter(predicate);


}

注意:Filter(predicate)执行操作并返回结果。到目前为止,一切都很好。我得到了预期的结果。我猜这可能会带来诸如SQL攻击之类的问题。

我可以做以下事情吗:如果可以,怎么办?

  var format = "( createdBy == @me  && createdTo == @you ) "
  format += " || ( createdBy == @you  && createdTo == @me ) "


 let predicate = NSPredicate(format:  format, [ "me" : me, "you" : you ])

到目前为止,我已经实现了:

    format = "( createdBy == %@  && createdTo == %@ ) "
    format += " || ( createdBy == %@  && createdTo == %@ ) "


    let predicate = NSPredicate(format:  format, me!, you, me!, you)
pbasdf

您可以使用NSPredicate的predicateWithSubstitutionVariables(请参阅Apple Docs)。照常创建谓词,使用“ $ variable”代替要替换的值:

var format = "( createdBy == $me  && createdTo == $you ) "
format += " || ( createdBy == $you  && createdTo == $me ) "
let predicate = NSPredicate(format:  format)

然后使用变量名和要传递的值创建一个字典:

let subVars = ["me" : me!, "you" : you!]

最后创建谓词,将变量名替换为您的值:

let finalPredicate = predicate.predicateWithSubstitutionVariables(subVars)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Swift 通过 Init 传递多个参数

来自分类Dev

创建目录将通过参数C#传递多个名称

来自分类Dev

通过xargs传递多个参数

来自分类Dev

通过名称Scala传递函数参数

来自分类Dev

在FuzzyWuzzy中传递多个参数

来自分类Dev

在PDO中传递多个参数

来自分类Dev

在Promises中传递多个参数

来自分类Dev

在 $stateParams 中传递多个参数

来自分类Dev

在 XML 中传递多个参数

来自分类Dev

在java中传递多个参数

来自分类Dev

通过细枝路径传递多个参数

来自分类Dev

@selector通过多个参数传递

来自分类Dev

通过细枝路径传递多个参数

来自分类Dev

通过cursor.executemany传递多个参数?

来自分类Dev

通过多个页面传递参数

来自分类Dev

在咖喱参数中通过引用传递参数

来自分类Dev

在咖喱参数中通过引用传递参数

来自分类Dev

Swift 中参数的外部名称

来自分类Dev

在Lisp中,如何通过名称作为参数传递的方式从宏调用函数?

来自分类Dev

如何在postgresql中创建具有可通过函数作为参数传递名称的视图?

来自分类Dev

Swift:NSStringDrawingOptions,无法传递多个参数

来自分类Dev

通过android中的url传递多个参数并在PHP中获取它们

来自分类Dev

将多行Powershell结果通过管道传递到一行中的多个参数中

来自分类Dev

如何通过多个功能传递多个参数

来自分类Dev

如何通过WPF DataTrigger在多值转换器中传递多个参数

来自分类Dev

Tkinter Python:如何通过OptionMenu中的lambda函数传递多个参数

来自分类Dev

通过将文件夹列表作为参数传递来在ansible中创建多个目录

来自分类Dev

通过PHP中的URL传递和获取同一参数的多个值的最佳方法

来自分类Dev

在Java中获取传递的参数名称?

Related 相关文章

热门标签

归档