Ответ 1
Ваш синтаксис выглядит корректно. Просто измените замыкание на
return o1.name == o2.name ? (o1.description < o2.description) : (o1.name < o2.name)
Если вы хотите более двух критериев сортировки, я рекомендую использовать старые стильные дескрипторы сортировки.
let sortedArray = (unsortedArray as NSArray).sortedArrayUsingDescriptors([
NSSortDescriptor(key: "name", ascending: true),
NSSortDescriptor(key: "description", ascending: true),
....
]) as! [Object]