The #define
is a pre-processor macro. That means that it basically goes through your code and replace your macro with what you've defined.
If you use a const, it's going to be a pointer to the string in memory. It's way more efficient than having the same string being allocated wherever/whenever it is used.
To do that, you'll need both .h and .m files. Your .h file will look something like:
extern NSString * const YOUR_STRING;
And your .m file:
NSString * const YOUR_STRING = @"your string";