-2

I' want to filter NSARRAY based on an object named id, I've specific set of Ids that I want to filter and want to be first in NSARRAY.

I stored the following Ids as NSNUMEBR

         NSNumber *A = [NSNumber numberWithInt:1122];
         NSNumber *B = [NSNumber numberWithInt:1345];
         NSNumber *C = [NSNumber numberWithInt:1667];
         NSNumber *D = [NSNumber numberWithInt:1223];
         NSNumber *E = [NSNumber numberWithInt:1213];
         NSNumber *F = [NSNumber numberWithInt:1123];
         NSNumber *G = [NSNumber numberWithInt:1555];
         NSNumber *H = [NSNumber numberWithInt:1666];
         NSNumber *I = [NSNumber numberWithInt:1567];

These are the set of ids that I want to filter and want to be first in my NSARRAY (Can be NSMutableArray for operation)

EDIT 1:

the NSARRAY is basically getting the id object as

Ids = [dict valueForKey:@"id"];

That selective ids are stored in NSNUMBER A to I

developer
  • 668
  • 1
  • 6
  • 24

2 Answers2

0

It is unclear what you are asking, as indicated by the down votes and comments. But let's see if we can help. I think the following pseudo-code algorithm is what you are asking for:

MutableArray frontItems, rearItems;

for every item in sourceArray
   if item["id"] is in the collection of specific IDs
   then add item to end of frontItems
   else add item to end of rearItems

add rearItems to end of frontItems to give result

Write that in Objective-C and I think you have what you want.

HTH

CRD
  • 52,522
  • 5
  • 70
  • 86
0

//Creat array have all item : A->I

NSNumber *A = [NSNumber numberWithInt:1122];
NSNumber *B = [NSNumber numberWithInt:1345];
NSNumber *C = [NSNumber numberWithInt:1667];
NSNumber *D = [NSNumber numberWithInt:1223];
NSNumber *E = [NSNumber numberWithInt:1213];
NSNumber *F = [NSNumber numberWithInt:1123];
NSNumber *G = [NSNumber numberWithInt:1555];
NSNumber *H = [NSNumber numberWithInt:1666];
NSNumber *I = [NSNumber numberWithInt:1567];

NSMutableArray *arr = [[NSMutableArray alloc] initWithObjects:A,B,C,...,I, nil];

for (NSNumber *idx in arr) {
    // To do
}
Binladenit Tran
  • 121
  • 1
  • 1
  • 7