Hi all!
I got stucked with the task.
I need to write a method which iterates over Teachers and returns ones if conditions met.
Here is my code:
struct School {
var name: String
var teachers: [Teacher]
func getTeacher(withID id: Int) -> [Teacher]? {
for teacher in teachers {
if teacher.id == id {
return teacher
} else {
return nil
}
}
}
I know I do something wrong, coz it gives me an error…but I cannot understand what and why 
error: SchoolDatabase.swift:20:16: error: cannot convert return expression of type ‘Teacher’ to return type ‘[Teacher]?’
return teacher
Can someone please explain what is wrong and help, please
url: https://www.codecademy.com/courses/learn-intermediate-swift/projects/swift-optionals-school-database
1 Like
You ever get an answer to this?
@benstone91 I’m sorry for so many questions! However, I am stuck on this project as well. I am getting error messages re: my use of “FavoriteTeacher” in the print statements. I checked the project code and my code matches it.
SchoolDatabase.swift:31:52: error: use of unresolved identifier ‘favoriteteacher’
print(“(student.name)'s favorite teacher is (favoriteteacher.name)”)
I’m actually not completely understanding how the code would know to print a favorite teacher’s name since the “FavoriteTeacher” property is attached to the student struct.
Thank you for your time on this!
The method getTeacher(withID:)
expects to return an optional array of Teachers (type [Teacher]?
). Your return statement only returns a single Teacher
. You can either change the return type to Teacher?
or change the return statement to return [teacher]
The code at the solution link (SchoolDatabase.swift · GitHub) seems to run fine for me.
You’ll need a Student
to access their favoriteTeacherID
. Is there a code snippet that you could share you’re having trouble with?
Wow, yeah when I run the full code it works perfectly. I was getting the errors as I added each print statement, but when I finished the full code, the errors went away. Thank you so much!!