2013-08-26 28 views

回答

1

您可以在詞典中,像單獨存儲數據,

Array 
(
    { 
     "number" = 403 
     "text" = "vase" 
    }, 
    { 
     "number" = 403 
     "text" = "vase" 
    } 
) 

那麼你可以進行排序使用,

NSSortDescriptor * descriptor = [NSSortDescriptor sortDescriptorWithKey:@"text" ascending:YES]; 
[array sortUsingDescriptors:[NSArray arrayWithObject:descriptor]]; 
0

的最佳途徑此

NSSortDescriptor *descriptor; = [NSSortDescriptor sortDescriptorWithKey:@"text" ascending:YES comparator:^(NSString *obj1, NSString *obj2) { 

      return [obj1 compare:obj2 :NSCaseInsensitiveSearch]; 

     }]; 

    [arrDocuments sortUsingDescriptors:[NSArray arrayWithObjects:descriptor,nil]]; 
0

現在開始一個循環其中包含您希望排序的數組中的所有對象。假設數組的名稱是originalArray

NSMutableArray *newArray = [[NSMutableArray alloc] init]; 
NSMutableArray *finalArray = [[NSMutableArray alloc] init]; 

for(int i = 0; i < originalArray.count; i++) 
{ 
    NSString *tempstr = [originalArray objectAtIndex:i]; // suppose it is 123 - abcd 

    NSString *newString = [[tempstr componentsSeparatedByCharactersInSet: [[NSCharacterSet letterCharacterSet] invertedSet]] componentsJoinedByString:@""]; 

    NSDictionary *dict = [[NSDictionary alloc] init]; 
    [dict setValue:@(i) forKey:@"num"]; 
    [dict setValue:newString forKey:@"char"]; 

    [newArray addObject:dict]; 

} 

現在您可以排序newArray: -

NSSortDescriptor * descriptor = [NSSortDescriptor sortDescriptorWithKey:@"char" ascending:YES]; 
[newArray sortUsingDescriptors:[NSArray arrayWithObject:descriptor]]; 

現在你可以(在關鍵NUM

for(int j = 0; j<newArray.count ; j++) 
{ 
    NSDictionary *dict1 = [[NSDictionary alloc] init]; 
    dict1 = [newArray objectAtIndex: j]; 
    int number = [[dict1 objectForKey:@"num"] intValue]; 
    NSString *str = [originalArray objectAtIndex:number]; 

//Now add this string in the finalArray. 

    [finalArray addObject:str]; 
} 

我希望從現在這個陣列中的字典索引你能夠理解這一點。 :)