первый идеален для констант, потому что строка, на которую он указывает, не может быть изменена:
//.h
extern NSString * const MyConstant;
//.m
NSString * const MyConstant = @"MyConstant";
...
MyConstant = @"Bad Stuff"; // << YAY! compiler error
and
//.h
extern NSString *MyConstant;
//.m
NSString *MyConstant = @"MyConstant";
...
MyConstant = @"Bad Stuff"; // << NO compiler error =\
, короче, используйте const (первый) по умолчанию.компилятор сообщит вам, если вы попытаетесь изменить его в будущем - тогда вы можете решить, была ли это ошибка от вашего имени или объект, на который он указывает, может измениться.это хорошая защита, которая сохраняет много ошибок / царапин.
другой вариант для значения:
extern int MyInteger; // << value may be changed anytime
extern const int MyInteger; // << a proper constant