How do I sort an NSMutableArray with custom objects in it?

前端 未结 27 3313
予麋鹿
予麋鹿 2020-11-21 04:45

What I want to do seems pretty simple, but I can\'t find any answers on the web. I have an NSMutableArray of objects, and let\'s say they are \'Person\' objects

相关标签:
27条回答
  • 2020-11-21 05:24
    -(NSMutableArray*) sortArray:(NSMutableArray *)toBeSorted 
    {
      NSArray *sortedArray;
      sortedArray = [toBeSorted sortedArrayUsingComparator:^NSComparisonResult(id a, id b) 
      {
        return [a compare:b];
     }];
     return [sortedArray mutableCopy];
    }
    
    0 讨论(0)
  • 2020-11-21 05:24

    Use like this for nested objects,

    NSSortDescriptor * sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"lastRoute.to.lastname" ascending:YES selector:@selector(caseInsensitiveCompare:)];
    NSMutableArray *sortedPackages = [[NSMutableArray alloc]initWithArray:[packages sortedArrayUsingDescriptors:@[sortDescriptor]]];
    

    lastRoute is one object and that object holds the to object, that to object hold the lastname string values.

    0 讨论(0)
  • 2020-11-21 05:25

    Sorting NSMutableArray is very simple:

    NSMutableArray *arrayToFilter =
         [[NSMutableArray arrayWithObjects:@"Photoshop",
                                           @"Flex",
                                           @"AIR",
                                           @"Flash",
                                           @"Acrobat", nil] autorelease];
    
    NSMutableArray *productsToRemove = [[NSMutableArray array] autorelease];
    
    for (NSString *products in arrayToFilter) {
        if (fliterText &&
            [products rangeOfString:fliterText
                            options:NSLiteralSearch|NSCaseInsensitiveSearch].length == 0)
    
            [productsToRemove addObject:products];
    }
    [arrayToFilter removeObjectsInArray:productsToRemove];
    
    0 讨论(0)
提交回复
热议问题