【问题标题】:Using of ALL/ANY/NONE in NSPredicate在 NSPredicate 中使用 ALL/ANY/NONE
【发布时间】:2014-10-29 11:21:31
【问题描述】:

当我们使用 ALL/ANY 等时,我正在尝试理解 NSPredicate 及其语法

我的班级人:

@interface Person : NSObject

@property (nonatomic, strong) NSString* name;
@property (nonatomic, strong) NSString* surname;
@property NSUInteger age;
@property NSUInteger weight;
@property NSUInteger height;

我将它用于这样的谓词:

NSArray* persons = [NSArray arrayWithObjects:personOne, personTwo, personThree, personFour, nil];

我的谓词:

NSPredicate* predicateEight = [NSPredicate predicateWithFormat:@"ANY SELF.age > %@", @55]; 
filteredArray = [persons filteredArrayUsingPredicate:predicateEight];
NSLog(@"Age > 55 %@", filteredArray);

我收到了一个错误:

ALL 或 ANY 运算符的左侧必须是 NSArray 或 NSSet

我需要如何更改我的代码? 提前感谢您的帮助。

【问题讨论】:

    标签: ios nspredicate


    【解决方案1】:

    应该是这样的:

    NSPredicate* predicateEight = [NSPredicate predicateWithFormat:@"self.age > %d", 55];
    

    【讨论】:

    • 感谢您的回答,但它的经典使用。如果我想完全使用 ALL/ANY(以了解可以在哪里使用它),它会是什么样子?也许我需要添加一些结构?
    【解决方案2】:

    ;)

    ALL/ANY 用于 NSArray 或 NSSet。在您的情况下,ANY 用于 Person 的实例。

    任何使用示例:

    NSPredicate* predicateEight = [NSPredicate predicateWithFormat:@"ANY SELF.age > %@", @55];
    BOOL result = [predicateEight evaluateWithObject:persons];
    

    如果你有人员数组(Array of Arrays):

    NSArray* group1 = [NSArray arrayWithObjects:personOne, personTwo, personThree, nil];
    NSArray* group2 = [NSArray arrayWithObjects:personFour, personFive, personSix, nil];
    NSArray* group3 = [NSArray arrayWithObjects:personSeven, personEight, personNine, nil];
    
    NSArray* groups = [NSArray group1, group2, group3, nil];
    
    NSPredicate* predicateEight = [NSPredicate predicateWithFormat:@"ANY SELF.age > %@", @55];
    
    NSArray* filteredArray = [groups filteredArrayUsingPredicate:predicateEight];
    

    【讨论】:

    • Вадим, Вы бяка :) Но по теме, согласен ))))))))))
    猜你喜欢
    • 2015-07-16
    • 2012-08-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多