For some reason, I’m receiving many “Control reaches end of non-void function” warnings from Xcode despite the fact that I am returning a value. I get the warning in two functions (shown in the below image). In the first function, I call return [super init] and the return type is id, so I don’t understand why I’m getting that warning. In the second function, the return type is void, and the warning specifies that the error is occurring in a non-void function. Basically, I’m wondering whether I’m making some mistake I’m not aware of, or if Xcode is just acting buggy.

[Posted as answer as suggested by the author of the question with a bit more info]
Just running the project in most cases causes the compiler to just regenerate the linker files which have been affected since the last build and sometimes it’s not perfect which is what causes these errors.
To solve, just Clean your project (Product -> Clean or Command-Shift-K) and then run your project. This causes any previously generated linker files to be destroyed (not a problem) and regenerated from scratch. The build will take longer than just simply running the project because it needs to build and link every class as opposed to just the ones that have changed when simply doing Run