Ios Swift-如何对自定义类数组进行排序?
这是我的密码。如您所见,我正在使用一个自定义类。我创建了一个学生数组,并对其进行排序。我知道我必须使用Ios Swift-如何对自定义类数组进行排序?,ios,arrays,iphone,swift,sorting,Ios,Arrays,Iphone,Swift,Sorting,这是我的密码。如您所见,我正在使用一个自定义类。我创建了一个学生数组,并对其进行排序。我知道我必须使用排序功能,但我不知道如何使用它。我知道我需要创建一个函数,它接受两个学生并返回一个布尔值 尽管我知道代码不是100%正确,但我知道我想集中精力调用排序函数。 class Subject{ var id:Int var name: String init(id:Int, name:String){ self.id = id self
排序
功能,但我不知道如何使用它。我知道我需要创建一个函数,它接受两个学生并返回一个布尔值
尽管我知道代码不是100%正确,但我知道我想集中精力调用排序函数。
class Subject{
var id:Int
var name: String
init(id:Int, name:String){
self.id = id
self.name = name
}
}
class Helper{
static func isFirstStudentBetterThanTheSecondStudent(student1: Student, student2: Student) -> Bool{
if student1.subjects == nil{
return false
}
var student1Marks: Double = 0
for index in student1.marks!{
student1Marks += index
}
var student2Marks :Double = 0
for index in student2.marks!{
student2Marks += index
}
return student1Marks > student2Marks
}
}
let subject1 = Subject(id: 1, name: "subject 1")
let subject2 = Subject(id: 2, name: "subject 2")
let subject3 = Subject(id: 3, name: "subject 3")
let student1 = Student(number: 1, fullName: "student 1")
student1.addSubject(subject1, result: 10)
student1.addSubject(subject2, result: 20)
student1.addSubject(subject3, result: 30)
let student2 = Student(number: 2, fullName: "student 2")
student2.addSubject(subject1, result: 100)
student2.addSubject(subject2, result: 200)
student2.addSubject(subject3, result: 300)
let students = [student1, student2]
我需要根据helper静态函数对students数组进行排序。sort函数采用闭包作为参数
let sortedStudent = students.sort({ Helper.isFirstStudentBetterThanTheSecondStudent ($0, student2: $1 ) } )
完整语法的结果相同:
let sortedSudents2 = students.sort({(s1: Student, s2:Student) -> Bool in return Helper.isFirstStudentBetterThanTheSecondStudent(student1, student2: student2)})