【问题标题】:Writing a NSPredicate for my scenario为我的场景编写一个 NSPredicate
【发布时间】:2012-02-07 17:07:32
【问题描述】:

我有一个谓词,我需要过滤掉一个属性。该属性的名称是location,该属性可以有none、one 或more 值。那我怎么写谓词

例如,如果医院位置可以有 0 个或多个值。它可能没有位置,或者 1(纽约)或更多(纽约、加利福尼亚、德克萨斯)。因此,根据数组上的值,我该如何编写谓词。

NSArray *filteredHospitalArr= [hospitalArray filteredArrayUsingPredicate:[NSPredicate predicateWithFormat:@"location= %@ ", [hospitalObject objectAtIndexPath:0]]]; // ???

还要注意,位置的数量可能会改变,(它可能没有,一个或多个值)

编辑:

说明是否要求用户为特定医院选择他/她的过滤条件。他/她会选择一个或多个位置。那么我如何编写谓词以适应他/她的过滤器要求。 (用户可能会或可能不会输入过滤条件,或输入多个首选位置)。那我怎么能根据这个场景来写呢

【问题讨论】:

    标签: iphone objective-c


    【解决方案1】:

    您要过滤掉没有位置的医院吗?

    [NSPredicate predicateWithFormat:@"locations.@count != 0"]
    

    更新:也许更像

    @"ANY locations IN %@", myArrayOfLocations"
    

    【讨论】:

    • 是的,我需要根据用户偏好过滤位置
    • 类似NSArray *filteredHospitalArr= [hospitalArray filteredArrayUsingPredicate:[NSPredicate predicateWithFormat:@"ANY locations IN %@ ", userPreferenceArray]]; ?
    • 如果 userPreferenceArray 包含位置
    • 是的,它是一个数组,包含字符串位置。 @“纽约”等
    【解决方案2】:

    也许Apple Predicate Programming Guide 可以帮助你?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多