A UIView is always backed by a CALayer.
A UIView uses the Quartz Core framework by importing the framework itself. Quartz Core is actually "loaded" but your code can't reference it because the symbols aren't available to your file at compile time.
You could do something like this (it's bad practice, but illustrates that Quartz Core is actually available)
id layer = [self.view performSelector:NSSelectorFromString(@"layer")];
NSArray *filtersOnLayer = [layer performSelector:NSSelectorFromString(@"filters")];
It used to be the case that you had to #import <QuartzCore/QuartzCore.h>
in order to interact with layer objects. I'm not sure why, but as of around Xcode 5 that doesn't seem to be the case anymore. It could be related to how Apple changed how they manage precompiled headers.