I agree! extern constants are a pain to write, but unfortunately... Apple seems to prefer them:

"In general, don’t use the #define preprocessor command to create constants. For integer constants, use enumerations, and for floating point constants use the const qualifier, as described above."
"Define constants for strings used for such purposes as notification names and dictionary keys. By using string constants, you are ensuring that the compiler verifies the proper value is specified (that is, it performs spell checking)."
https://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/CodingGuidelines/Articles/NamingIvarsAndTypes.html

Though the guidelines mention "notification names and dictionary keys", so I hope other types of strings are OK!