Я не могу объявить это свойство в файле .h, могу ли я сделать это в файле .m?

#iphone #objective-c #cocoa-touch #class

#iPhone #objective-c #cocoa-touch #Класс

Вопрос:

Я хочу создать свойство из представления, в которое уже импортирован мой класс в его собственный файл .h, и поэтому я не могу импортировать его файл .h в свой файл .h, потому что это вызывает проблемы. Это означает, что я должен поместить его импорт в файл .m.

Помещаем это в файл .m:

View1 *просмотр1;

работает нормально. Но ввод @property вызывает проблемы. Кажется, я не могу найти, куда лучше его поместить, чтобы не вызвать ошибку. Есть ли обходной путь для этого?

Ответ №1:

Вы можете поместить это в свой @interface в заголовочном файле без импорта View1.h. Просто используйте прямое объявление, подобное этому:

 @class View1;

@interface MyClass : NSObject {

}

@property (attrs) View1 *view1;
@end
  

Вы также можете объявить свойства в файле вашей реализации (.m), если вам когда-нибудь понадобится, с расширением класса, подобным so:

 @interface MyClass() 

@property (attrs) View1 *somePrivateProperty;
@end
  

Это полезно по другим причинам, но не обязательно в вашем случае, исходя из того, что вы сказали. Думайте об этом как о дополнительном @interface со свойствами и методами, которые вы, возможно, захотите скрыть от других классов, которые импортируют «MyClass.h»

Надеюсь, это поможет.