Getting an NSArray of a single attribute from an NSArray

后端 未结 3 804
一整个雨季
一整个雨季 2021-01-02 09:08

I am facing a very regular scenario.

I have an NSArray which has object of a custom type, say Person. The Person class has the attributes: firstName, lastName and ag

相关标签:
3条回答
  • 2021-01-02 09:45

    You can also use block based enumeration:

    NSArray *people;  // assumably has a bunch of people
    NSMutableArray *firstNames = [NSMutableArray array];
    
    [people enumerateObjectsUsingBlock: 
     ^(id obj, NSUInteger idx, BOOL*flag){
         // filter however you want...
         [firstNames addObject:[Person firstName]];
     }];
    

    The benefit is it is fast and efficient if you have a bunch of people...

    0 讨论(0)
  • 2021-01-02 10:01

    Check out the filterUsingPredicate: method in NSMutableArray, basically you create a NSPredicate object that will define how the array will be filtered.

    http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/Predicates/Articles/pUsing.html#//apple_ref/doc/uid/TP40001794-CJBDBHCB

    This guide will give you an overview, and has a section for dealing with arrays.

    0 讨论(0)
  • 2021-01-02 10:03

    NSArray will handle this for you using KVC

    NSArray *people ...;
    NSArray *firstName = [people valueForKey:@"firstName"];
    

    This will give you an array of the firstName values from each entry in the array

    0 讨论(0)
提交回复
热议问题