Сбой Xcode4 приводит к сбою сборки приложения - PullRequest
0 голосов
/ 30 апреля 2011

мой xcode 4 только что упал, и я получаю ошибки сборки:

Неизвестное имя типа 'SecondViewController'

в блоке кода @interface:

SecondViewController *sms;

и

Свойство с атрибутом 'retain' должно иметь тип объекта

в

@property(nonatomic,retain) SecondViewController *sms;

Однако я импортирую SecondViewController.h.Тот же код работал до сбоя.

FirstViewController.h: http://pastebin.com/jnPKBny7

SecondViewController.h: http://pastebin.com/2D058ZAK

Редактировать: я понял, что это ошибкапроисходит потому, что классы импортируют друг друга.Кто-нибудь может описать, почему это не так?

Есть идеи?

1 Ответ

1 голос
/ 30 апреля 2011

У вас не может быть кругового импорта.Я думаю, что это хорошая практика, когда это возможно, использовать объявления класса forward с директивой @class.Для вашего случая:

FirstViewController.h:

@class SecondViewController ;
@interface FirstViewController
{
    SecondViewController * _secondViewController ;
}

@property ( nonatomic, retain ) secondViewControlller ;

@end

SecondViewController.h:

@class FirstViewController ;
@interface SecondViewController
{
    FirstViewController * _firstViewController ;
}

@property ( nonatomic, retain ) firstViewControlller ;

@end

Затем в свои файлы .m импортируйте файлы .h дляклассы, которые вы используете.Единственными причинами импорта файлов .h в другие файлы .h являются:

  • импорт структуры (т. Е.)
  • вам необходимо использовать протокол
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...