App имеет contentid
приходит как номер строки из файла JSON:NSSortDescriptor номера оценки восходящие (Swift)
let contentid: AnyObject! = jsonFeed["contentid"]
let stream:Dictionary = [
"contentId": contentid as! String,
]
Это позже сохраненному в [NSManagedObject] с:
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)
Наконец, Я использую NSSortDescriptor для ввода записей данных Core Data в числовом порядке:
let sort = NSSortDescriptor(key: "contentid", ascending: true)
fetchRequest.sortDescriptors = [sort]
Но записи - возвращены как: 10, 6, 7, 8, 9. Каким будет правильный метод правильного вычисления этих чисел с помощью NSSortDescriptor?
UPDATE:
Для Swift версии, пожалуйста, см ответ Фолькера ниже. Я закончил тем, что использовал
let sort = NSSortDescriptor(key: "contentid", ascending: true, selector: "localizedStandardCompare:")
и оценил пронумерованные строки как истинные целые числа.
UPDATE: Swift 2:
синтаксис Selector не изменился и больше не принимает ObjC указатели. Спасибо пользователю1828845.
let sort = NSSortDescriptor(key: "contentid", ascending: true, selector: #selector(NSString.localizedStandardCompare(_:)))
является 'contentid' номером или строкой внутри? – Volker
@Volker Это внутренняя строка. – simplexity
Дескриптор рассматривает их как числа. Вот почему он показывает 10 до 6. Возможное решение рассматривает эти числа как NSString. –