簡體   English   中英

過濾自定義對象的NSArray

[英]Filter NSArray of custom objects

我有一個NSArrayContact對象,我們可以稱其為contacts Contact是超類, FacebookGroupIndividualContact子類。 FacebookGroup具有稱為individuals的屬性,它是一組Individual對象。

我也有一個NSArrayNSString對象,我們可以把它叫做userIDs

我想做的是從現有的contacts數組中創建一個與userIDs中的userIDs相匹配的新NSArray

因此,如果contacts有3個Contact對象,其userID userIDs分別為1,2和3。我的userID具有3個NSString對象,那么我希望結果數組包含等於userID 3的Contact

聯絡人

Contact : NSObject

FacebookGroup.h

FacebookGroup : Contact

@property (nonatomic, strong) NSSet *individuals;

個人.h

Individual : Contact

@property (nonatomic, strong) NSString *userID;
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"userId = %@", myContact.userId];
NSArray *filteredArray = [contacts filteredArrayUsingPredicate:predicate];

這是你想要的?

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"userID IN %@", userIDs];
NSArray *filtered = [contacts filteredArrayUsingPredicate:predicate];

我希望您一旦看到這個就想要這樣,

 NSMutableArray *names = [NSMutableArray arrayWithObjects:@"one", @"two", @"three", @"four", nil];
    NSMutableArray *ids = [NSMutableArray arrayWithObjects:@"1", @"2", @"2", @"3", nil];
    NSMutableArray *array=[[NSMutableArray alloc]init];
    for(int i=0;i<[ids count];i++){
       if([[ids objectAtIndex:i] isEqualToString:@"2"])
           [array addObject:[names objectAtIndex:i]];
    }
    NSLog(@"%@",array);

O / P:-

(
    two,
    three
)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM