I am somewhat curious for iOS apps development with Xcode, even though we specifically state:
#import <QuartzCore/QuartzCore.h>
in our ViewController.h, when the project is linked, the QuartzCore library is not automatically linked. Why is that?
Because importing a header is in no way connected to linking against a library.
You will need to add QuartzCore Framework to the list libraries that your target links against.
Well, the headers you are importing are actually part of that framework. So Xcode would have to scan through all of its frameworks, check their headers and possibly automatically link the connected libraries. That is certainly doable for OS-related frameworks but close to impossible for custom frameworks as long as Xcode does not know their location.
Sometimes, Apps do actually not want to link against a library just because they use e.g. an enum defined in a header.