/ / Cómo agregar una NSArray devuelta a una NSArray - iphone, ios, ios4, xcode4

Cómo agregar una NSArray devuelta a una NSArray - iphone, ios, ios4, xcode4

Soy nuevo en Objective-C y iPhone

Tengo que ordenar un NSDictionary usando valores y de acuerdo con eso tengo que ordenar las claves de esos valores, he ordenado la matriz.

//getting values
NSArray* keys1 = [sortDictionary allValues];
NSArray* sortedArray = [keys1 sortedArrayUsingComparator:^(id a, id b) {
return [a compare:b options:NSNumericSearch];
}];

Mi problema ahora es que estoy obteniendo las claves de los valores por allKeysForObject:, que devuelve una NSArray.

for( NSString* aStr in sortedArray ) {
NSLog( @"%@ has value %@", [sortDictionary allKeysForObject:aStr], aStr );
}
O/P :- (
Sourish
) has value 60

Más bien quiero "Sourish" como una cadena y almacenarlo en un NSArray y luego almacenar ese NSArray en NSDictionary o almacenar tanto Sourish como 60 en otro NSDictionary

Amablemente haz que solucione nuestro problema.

Respuestas

2 para la respuesta № 1

Esto obtiene la cadena por ti mirando la matriz. ¿Es eso lo que buscas?

NSDictionary* sortDictionary = [NSDictionary dictionaryWithObjectsAndKeys: @"60", @"Sourish", @"45" , @"Peckish",  @"25", @"Swordfish", @"15", @"Mashmish", nil];

NSArray* keys1 = [sortDictionary allValues];
NSArray* sortedArray = [keys1 sortedArrayUsingComparator:^(id a, id b)
{
return [a compare:b options:NSNumericSearch];
}];

for( NSString* aStr in sortedArray )
{
NSString* keyForObject = @"";

if ([[sortDictionary allKeysForObject: aStr] count] > 0)
{
keyForObject = [[sortDictionary allKeysForObject: aStr] objectAtIndex: 0];
}

NSLog( @"%@ has value %@", keyForObject, aStr );
}

Esto registra:

Mashmish has value 15
Swordfish has value 25
Peckish has value 45
Sourish has value 60

0 para la respuesta № 2

">> Tengo que ordenar un NSDictionary usando valores y de acuerdo con eso tengo que ordenar las claves de esos valores"

NSArray *allkey =[[NSArray alloc] initWithArray:[sortDictionary keysSortedByValueUsingSelector:@selector(compare:)]] ;

Implementa tu método de comparación,

 - (NSComparisonResult)compare:(id)b {
return [self compare:b options:NSNumericSearch];
}

El allkey es el conjunto de claves ordenadas usando valores.


0 para la respuesta № 3

puedes usar NSMutableArray para almacenar sus datos utilizando addObject: selector o usar NSMutableDictionary para almacenar tanto como clave: valor pare utilizando addObjectsAndKeys: selector