求两个自定义对象构成的数组的差集

来源:互联网 发布:如何加入淘宝客联盟 编辑:程序博客网 时间:2024/05/23 13:24

#import "ViewController.h"


@interface Person :NSObject

@property(nonatomic,strong)NSString* name;

-(instancetype)initWithName:(NSString*)name;

@end


@implementation Person

-(instancetype)initWithName:(NSString*)name{

   self = [superinit];

    

   self.name = name;

    return self;

}

@end


@implementation ViewController


- (void)viewDidLoad

{

    [superviewDidLoad];

    

   NSArray* arr1 = @[

                        [[Personalloc] initWithName:@"tom"]

                        ,[[Personalloc] initWithName:@"jerry"]

                        ,[[Personalloc] initWithName:@"david"]

                       ];

    

    

   NSArray* arr2 = @[

                        [[Personalloc] initWithName:@"tom"]

                        ,[[Personalloc] initWithName:@"marry"]

                        ,[[Personalloc] initWithName:@"gorge"]

                       ];

    

    //关键,name是自定义对象的属性名

   NSPredicate *thePredicate = [NSPredicatepredicateWithFormat:@"NOT (SELF.name in %@.name)", arr2];

    //求差集:arr1 - arr2

   NSArray* arr1SubtractArr2 = [arr1filteredArrayUsingPredicate:thePredicate];

    

   for(Person* personin arr1SubtractArr2){

       NSLog(@"%@",person.name);

    }

}


@end


0 0