Question: I am looking to create a set of code which meets all of the requirements listed in the picture given below. Here's what I have

I am looking to create a set of code which meets all of the requirements listed in the picture given below. Here's what I have so far:
class OrderedNotebook: Notebook {
// Properties
private var orderedKeys: [String]=[]
// Override add method to maintain order
override func add(note: Note){
super.add(note: note)
if !orderedKeys.contains(note.id){
orderedKeys.append(note.id)
}
}
// Override remove method to maintain order
override func remove(id: String)-> Note? {
if let removedNote = super.remove(id: id){
if let index = orderedKeys.firstIndex(of: id){
orderedKeys.remove(at: index)
}
return removedNote
}
return nil
}
// Method to sort notes
func sortNotes(by closure: (Note, Note)-> Bool){
orderedKeys.sort { id1, id2 in
guard let note1= self[id1], let note2= self[id2] else { return false }
return closure(note1, note2)
}
}
// Override to get all notes in order
override func getAllNotes()->[Note]{
return orderedKeys.compactMap { self[$0]}
}
}
Can you please make whatever additions/modifications needed to the code to ensure it meets all requirements laid out in the photo and operates correctly? Just to be clear, this means down to every last detail given in those instructions, as to make sure it all matches up in the end. If I've done anything wrong on that end so far, please do correct it as part of the final product you dish out. Thank you.
I am looking to create a set of code which meets

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Programming Questions!