Я думаю, что это классический случай циклических ссылок. Может быть, два класса ссылаются друг на друга? Из-за этой прямой декларации вы можете получить всевозможные предупреждения при попытке обратиться к имени класса или свойствам класса, который имеет прямую декларацию.
Где все, что вы включили ChangePasscode
. Также используйте #import
вместо #include
.
ОБНОВЛЕНИЕ : Чтобы решить вашу ld: duplicate symbol...
ошибку
Кажется, вы компилируете один и тот же класс ChangePasscode
два раза в разных местах вашего кода. Это может произойти в следующих случаях.
- Вы поместили одну и ту же реализацию класса в два разных файла
- На самом деле у вас есть только одна реализация этого класса, однако вы также связываете в своем проекте фреймворк или библиотеку, содержащую класс, имя которого точно совпадает с вашим.
- Вы также можете получить эту ошибку, если по ошибке позволите автозаполнению XCode для операторов #import указать файл «.m» для класса «duplicate» вместо «.h».
Попробуйте найти во всем проекте свой класс и убедитесь, что в вашем проекте доступна только одна копия.