我遇到了一个问题,即qsort有时会对某些内容进行排序,有时候它并没有。这是我的代码
func LoadFecth() {
let ordenacaoAZ = NSSortDescriptor(key: "nome", ascending: true)
let ordenacaoAZPrecep = NSSortDescriptor(key: "preceptor", ascending: true)
let recupoerardados = NSFetchRequest<NSFetchRequestResult>(entityName: "AlunosLista")
recupoerardados.sortDescriptors = [ordenacaoAZPrecep, ordenacaoAZ]
do{
let recupera = try gerenciadorDeDados?.fetch(recupoerardados)
self.alunos = recupera as! [NSManagedObject]
self.tableView.reloadData()
}catch let erro as NSError{
print("Erro ao carregar: \(erro.description)")
}
}
它适用于示例{ccc,bbb,aaa},但不适用于示例{afdg,sspade,trekk,bbre,lol}
答案 0 :(得分:2)
scanf
在输入缓冲区中留下了一个换行符,该换行符由第一个gets
读取。
这两个循环迭代次数太多,将数组索引超出其边界。我想你这样做是为了获得正确的表观输入数量。
在第一个循环之前清除输入,可能是读取一个虚拟字符串,并纠正循环控制。
另请注意,gets()
现已过时。