错误:预期标识符或'(''公共'之前' - 目标C

时间:2011-05-11 08:47:49

标签: objective-c

当我将实例变量声明为

时,我收到此错误
@interface FOO : NSObject
{
 @public
  int a;
}
@public
-(id)init;
-(void)dealloc;
@end

错误:预期标识符或'(''public'

之前的标识符

2 个答案:

答案 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