views:

88

answers:

2

I was messing with my Objective-C++ namespace today.

I found that Handle, Size and Duration are already defined in ObjC++. What are they defined to be and where are they defined?

I have only #imported Foundation/Foundation.h

+2  A: 

You can Command-double-click on a symbol in Xcode to see where it's defined, or use "Open Quickly" (Command-Shift-D) and type a symbol name. Handle, Size and Duration are in the CoreServices framework, for example.

To avoid conflicts, you should always use a unique prefix (typically your initials or a shortened version of your project's name) in your global Objective-C names. Take a look at the answers to this question which link to some Objective-C style guides.

Nicholas Riley
+6  A: 

MacTypes.h

typedef char *                          Ptr;
typedef Ptr *                           Handle;
typedef long                            Size;
typedef SInt32                          Duration;

These all predate Carbon. They having nothing to do with Cocoa even though they fill up the namespace.

drawnonward