Clasificación de una matriz alfabéticamente en swift

Soy nuevo en swift. Estoy probando una aplicación de ejemplo en la que necesito implementar la orderación de una matriz en order alfabético. Obtengo los datos de json y agrego los títulos en la matriz. Ahora quisiera clasificarlos alfabéticamente .Aquí está mi código …..

func updateSearchResults(data: NSData?) { do { let json = try NSJSONSerialization.JSONObjectWithData(data!, options: .AllowFragments) if let blogs: NSArray = json["results"] as? [AnyObject] { print(blogs) for blog in blogs { if let name = blog["original_title"] as? String { names.addObject(name) } } print(names) **let sortedArray = sorted(names, { (str1: String, str2: String) -> Bool in return str1.toInt() < str2.toInt()** // Here I am getting the Error Message }) } } catch { print("error serializing JSON: \(error)") } } 

El post de error que obtengo es "No se puede invocar 'orderado' con una list de arguments de tipo '(NSMutableArray, (String, String) -> Bool)'"

Intenté mucho para lograr esto, pero no encontré la solución. ¿Alguien puede ayudarme a resolver este problema? Gracias por adelantado.

Primero convierta NSMutableArray a la matriz utilizando la siguiente línea de código.

  let swiftArray = mutableArray as AnyObject as! [String] 

Use la siguiente línea de código para orderar la matriz.

 var sortedArray = names.sorted { $0.localizedCaseInsensitiveCompare($1) == NSComparisonResult.OrdenetworkingAscending } 

Consulte el enlace a continuación para sort Cierres. https://developer.apple.com/library/ios/documentation/Swift/Conceptual/Swift_Programming_Language/Closures.html

Actualización para Swift 3.0

 var sortedArray = swiftArray.sorted { $0.localizedCaseInsensitiveCompare($1) == ComparisonResult.ordenetworkingAscending } 

Use este simple código de línea para orderar ur array

  let sortedNames = names.sort { $0.name < $1.name } 

Swift3

 var names = [ "Alpha", "alpha", "bravo"] var sortedNames = names.sort { $0.localizedCaseInsensitiveCompare($1) == ComparisonResult.ordenetworkingAscending } print(sortedNames) //Logs ["Alpha", "alpha", "bravo"] 

Para una variedad de objects:

 items = items.sorted(by: { (item1, item2) -> Bool in return item1.product.name.compare(item2.product.name) == ComparisonResult.ordenetworkingAscending }) 

Solución Swift 3:

 let yourStringArray = [ "beTA", "ALPha", "Beta", "Alpha"] var sortedArray = yourStringArray.sorted() // Result will be ["ALPha", "Alpha", "Beta", "beTA"] 

Cnetworkings a jjatie

Prueba esta

 var names = [ "Alpha", "alpha", "bravo"] var sortedNames = names.sort { $0.localizedCaseInsensitiveCompare($1) == NSComparisonResult.OrdenetworkingAscending } print(sortedNames) //Logs ["Alpha", "alpha", "bravo"]