ios - iOS:自定义对象上的FilterUsingPredicate

标签 ios nsmutablearray nspredicate

我有一个自定义类扩展NSObject。我正在维护此类对象的NSMutableArray。这是情况

customObject-class {
   NSString *name;
   int ID;
   .....and many other properties;
}

customObjectsArray [
   customObject1,
   customObject2,
   ...etc
]

现在,我尝试使用filterUsingPredicate删除名称为nil的对象,如下所示,但它返回的对象很少或没有,而我知道有数百个名称为nil或为空的对象。有人可以告诉我这里有什么问题吗。
[customObjectsArray filterUsingPredicate:[NSPredicate predicateWithFormat:@"name != nil"]];

最佳答案

为什么不这样尝试:

NSMutableArray *array=...;
[array filterUsingPredicate:[NSPredicate predicateWithBlock:^BOOL(id evaluatedObject, NSDictionary *bindings) {
    CustomObject *customObject=(CustomObject *) evaluatedObject;
    return (customObject.name!=nil);
}]];

关于ios - iOS:自定义对象上的FilterUsingPredicate,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13906322/

相关文章:

ios - swift iOS : How to force a loop with async code to run synchronously?

objective-c - 更新类变量 NSMutableArray 的内容

ios - NSPredicate 不替换 %@ 参数 - Swift 4

ios - NSPredicate 没有正确过滤 TableView

ios - 核心数据 NSPredicate 使用 in 子句获取实体关系

ios - 不允许创建操作

ios - iOS 加速计游戏录制片段

iphone - 在 UIScrollView 中动态添加的 subview 未出现

ios - 按距离排序 Objective-C

objective-c - 使用 DidSelectRowAtIndexPath 更改 NSMutableArray