Инициализация по умолчанию объекта константного типа ‘NSString * const __strong’?

Когда мой проект Xcode компилируется с файлом .mm, я получаю несколько ошибок, и все ошибки одинаковы "Default initialization of an object of const type 'NSString *const __strong'" и предлагает поставить =nil, Некоторые файлы .cpp также включены, и .mm не создает проблемы, когда я помещаю код C ++ в .mm, появляются ошибки.
Мы все знаем, что если мы добавим .mm, он скомпилирует Objective-C и C ++. Ошибки в основном с NSString *const object; вид инициализации. Я не хочу ставить extern до этого или делать какие-либо другие модификации, потому что эти классы написаны кем-то еще в клиентской береговой команде, поэтому я не должен их трогать.

1

Решение

Декларация, такая как

NSString *const object;

Говорит, что object постоянный указатель на NSString объект. Обратите внимание на слова постоянный указатель, то есть указатель, который является постоянным и не может быть изменен.

Такой указатель должен быть инициализированным во время определения, в противном случае он будет навсегда неинициализирован (или инициализирован нулем, если определен в глобальной области видимости). Вы не можете назначить это позже, чтобы инициализировать это.

Если у вас есть такие переменные, объявленные в других единицах / модулях перевода, то вы должен использовать extern ключевое слово для явного указания компилятору, что это объявление переменной, которая существует (и инициализируется) где-то еще.

3

Другие решения


По вопросам рекламы [email protected]