NSSortDescriptor avaliando números ascendentes (Swift)
App hascontentid
entrando como uma sequência numérica de um arquivo json:
let contentid: AnyObject! = jsonFeed["contentid"]
let stream:Dictionary = [
"contentId": contentid as! String,
]
Mais tarde, é salvo em [NSManagedObject] com:
var articles = [NSManagedObject]()
let entity = NSEntityDescription.entityForName("Article", inManagedObjectContext: managedContext)
let article = NSManagedObject(entity: entity!, insertIntoManagedObjectContext: managedContext)
article.setValue(stream["contentId"], forKey: "contentid")
articles.append(article)
Por fim, uso o NSSortDescriptor para que os Dados Principais retornem entradas em ordem crescente numérica:
let sort = NSSortDescriptor(key: "contentid", ascending: true)
fetchRequest.sortDescriptors = [sort]
Mas entradas6 - 10 são retornados como:10, 6, 7, 8, 9. Qual seria o método correto de avaliar esses números corretamente usando o NSSortDescriptor?
ATUALIZAR:
Para a versão Swift, consulte a resposta de Volker abaixo. Acabei usando:
let sort = NSSortDescriptor(key: "contentid", ascending: true, selector: "localizedStandardCompare:")
e avaliou as seqüências numeradas como números inteiros verdadeiros.
ATUALIZAÇÃO: Swift 2:
A sintaxe do seletor foi alterada e não aceita mais ponteiros objc. Obrigado user1828845.
let sort = NSSortDescriptor(key: "contentid", ascending: true, selector: #selector(NSString.localizedStandardCompare(_:)))