Starting with OS X 10.6, you can use the __attribute__ keyword to specify
that a Core Foundation property should be treated like an Objective-C object
for memory management:
@property(retain) __attribute__((NSObject)) CTFrameRef frame;
This is an easy attribute to miss. It’s also one you can go a long time without
finding, because it’s not hard to work around.
(Do note that you can use the NSObject attribute with anything where you’d
use CFRetain/CFRelease, not just actual toll-free bridged objects. The toll
you’re dodging with __attribute__((NSObject)) is purely syntactic.)