我无法在.h文件中声明此属性,我可以在.m中执行此操作吗?

时间:2011-05-21 01:29:30

标签: iphone objective-c cocoa-touch class

我想从一个视图创建一个属性,该视图已经将我的类导入到它自己的.h文件中,因此我无法将它的.h文件导入到我的.h文件中,因为它会导致问题。这意味着我必须将它导入到.m文件中。

将其放入.m文件中:

View1 * view1;

工作正常。但是输入@property会导致问题。我似乎无法找到最好的地方,以免引起错误。有解决方法吗?

1 个答案:

答案 0 :(得分:1)

您可以将它放在头文件的@interface中,而无需导入View1.h。只需使用这样的前瞻声明:

@class View1;

@interface MyClass : NSObject {

}

@property (attrs) View1 *view1;
@end

如果需要,您还可以在您的实现(.m)文件中声明属性,并使用如下类扩展:

@interface MyClass() 

@property (attrs) View1 *somePrivateProperty;
@end

这对其他原因很有用,但根据您的说法,在您的情况下不是必需的。可以将它想象为具有属性和方法的辅助@interface,您可能希望从导入“MyClass.h”的其他类中隐藏它们

希望有所帮助。