Sort matriz que contiene palabras alfanuméricas en iOS

Tengo una matriz con 10 elementos llamados productos que se orderan de manera pnetworkingeterminada, este es el logging actual ahora.

for (int i=0;i<products.count; i++) { NSLog(@"%@",products[i]); } 

La salida:

 Product1 Product10 Product2 Product3 Product4 Product5 Product6 Product7 Product8 Product9 

Necesito clasificarlo en el siguiente order:

 Product1 Product2 Product3 Product4 Product5 Product6 Product7 Product8 Product9 Product10 

Mi método actual es escanear los numbers y clasificarlos en function de eso, me preguntaba si hay alguna otra forma o método pnetworkingeterminado en iOS que haga esto o debería tener que seguir con mi método actual de escanear los numbers en cada elemento y luego orderar?

Puede usar este código para orderar la matriz. Use NSNumericSearch para search el valor numérico en cadena.

 NSArray * products = [[NSArray alloc] initWithObjects:@"Product1", @"Product10", @"Product2", @"Product3", @"Product4", @"Product5", @"Product6", @"Product7", @"Product8", @"Product9", nil]; products = [products sortedArrayUsingComparator:^NSComparisonResult(id obj1, id obj2) { return [(NSString *)obj1 compare:(NSString *)obj2 options:NSNumericSearch]; }]; NSLog(@"products : %@", products); 

Y la pantalla de logging:

 products : ( Product1, Product2, Product3, Product4, Product5, Product6, Product7, Product8, Product9, Product10 ) 
 NSSortDescriptor *sortDesc = [[NSSortDescriptor alloc]initWithKey:@"YourKeyName" ascending:YES selector:@selector(localizedCaseInsensitiveCompare:)]; self.products = [[self.products sortedArrayUsingDescriptors:[NSArray arrayWithObjects:sortDesc, nil]] mutableCopy]; 

Para get más información sobre la documentation de Apple