【发布时间】:2012-02-01 11:20:56
【问题描述】:
可能重复:
Objective C: “Property implementation must have its declaration in interface”
我在另一个 viewController 中全局声明了一个 viewController 的对象。
我很确定
1- 我已经导入了必要的 viewController 类
2 - 我已经在 .h 文件中为该对象编写了 @property(nonatomic, retain)
3 - 我已经合成了相同的对象 .m 文件
但我仍然收到错误消息说“属性实现必须在接口中声明”。我在这里做错了什么......我一直在这个问题上摸不着头脑......
.h 文件
#import "viewController1.h"
@interface viewController2 :UIViewController<UITableViewDelegate,UITableViewDataSource>{
viewController2 *vc2;
}
@property(nonatomic,retain)viewController2 *vc2;
-(void)someMethod;
@end
.m 文件
#import "viewController2.h"
@implementation viewController2
@synthesize vc2;
@end
【问题讨论】:
-
可以给我们看一些代码/截图吗?
-
您能发布声明该属性的类的标题吗?如果我们能看到一些代码,我们将能够提供帮助。
-
你在设置属性前是否在界面中声明了变量?
-
是的......为了回答你的问题需要一些解释......只有一件事......在Obj-C中没有全局变量这样的东西所有变量都是私有的定义。
-
@Marsson Objective-C 是 ANSI C 的超集,因此确实存在全局变量。您的声明“在 Obj-C 中,所有变量根据定义都是私有的”虽然更令人困惑。您是指所有实例变量吗?实例变量默认是受保护的,不是私有的,并且可以修改它们的可见性。
标签: iphone objective-c ios properties getter-setter