当我将实例变量声明为
时,我收到此错误@interface FOO : NSObject
{
@public
int a;
}
@public
-(id)init;
-(void)dealloc;
@end
错误:预期标识符或'(''public'
之前的标识符答案 0 :(得分:3)
您不要在接口定义之外使用@public
或其他访问关键字,因为您没有在Objective-C中声明公共或私有方法。
只要在标题/界面中公开方法,它就可以从课外自动公开访问。如果您只添加一个实现,但不在头/接口中公开它(或仅在class extension中公开它),那么它是私有的。
@interface FOO : NSObject
{
@public
int a;
}
- (id)init;
- (void)dealloc;
@end
现在为什么你要声明一个公共int a
实例变量(而不是使用属性)或明确声明NSObject
已经存在的两个方法超出我的范围。
答案 1 :(得分:1)
在objective-c方法中,块不能包含@public(或@private)块 - 它仅适用于实例变量,而objective-c类中的所有方法都是公共的,因此要修复错误,请在代码中删除2nd @public :
@interface FOO : NSObject
{
@public
int a;
}
-(id)init;
-(void)dealloc;
@end