static только изменяет область действия переменной, а не то, как она объявлена или сохранена.
В обоих случаях компилятор создаст постоянную версию экземпляра NSString, которая хранится в файле mach-o. Таким образом, существует только один экземпляр того или другого (обратите внимание, что вы можете изменить поведение, чтобы динамически создавать строку при загрузке mach-o, но есть только один экземпляр).
static
просто помечает переменную aVar
как видимую в области действия модуля компиляции - только для файла. Без static
вы можете переопределить строку как extern NSString *aVar;
в заголовке и получить к ней доступ из любого места.
const
является ортогональным и, в случае NSString, ссылка в значительной степени не имеет значения.