且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

如何删除所有具有相同属性值但在 NSMutableArray 中的对象

更新时间:2023-01-17 18:19:42

你可以这样做:

NSMutableSet *seenObjects = [NSMutableSet set];
NSPredicate *dupPred = [NSPredicate predicateWithBlock: ^BOOL(id obj, NSDictionary *bind) {
    HistoryObject *hObj = (HistoryObject*)obj;
    BOOL seen = [seenObjects containsObject:hObj.title];
    if (!seen) {
        [seenObjects addObject:hObj.title];
    }
    return !seen;
}];
NSArray *yourHistoryArray = ... // This is your array which needs to be filtered
NSArray *yourHistoryArray = [yourHistoryArray filteredArrayUsingPredicate:dupObjectsPred];