Objective c 错误:应为标识符或';(';之前';公共';-目标C
当我将实例变量声明为Objective c 错误:应为标识符或';(';之前';公共';-目标C,objective-c,Objective C,当我将实例变量声明为 @interface FOO : NSObject { @public int a; } @public -(id)init; -(void)dealloc; @end 错误:“public”之前的预期标识符或“(”您没有在接口定义之外使用@public或其他访问关键字,因为您没有在Objective-C中声明public或private方法 只要您在头/接口中公开一个方法,它就可以从类外部自动公开访问。如果您只添加一个实现,但不在头/接口中公开它(或只在中公开它)
@interface FOO : NSObject
{
@public
int a;
}
@public
-(id)init;
-(void)dealloc;
@end
错误:“public”之前的预期标识符或“(”您没有在接口定义之外使用
@public
或其他访问关键字,因为您没有在Objective-C中声明public或private方法
只要您在头/接口中公开一个方法,它就可以从类外部自动公开访问。如果您只添加一个实现,但不在头/接口中公开它(或只在中公开它),它是私有的
@interface FOO : NSObject
{
@public
int a;
}
- (id)init;
- (void)dealloc;
@end
现在,为什么要将public
int声明为
实例变量(而不是使用属性)或者显式声明NSObject
已经拥有的两个方法是我无法理解的。在接口定义之外不使用@public
或其他访问关键字,因为在Objective-C中不声明public或private方法
只要您在头/接口中公开一个方法,它就可以从类外部自动公开访问。如果您只添加一个实现,但不在头/接口中公开它(或只在中公开它),它是私有的
@interface FOO : NSObject
{
@public
int a;
}
- (id)init;
- (void)dealloc;
@end
现在,我无法理解为什么要声明一个public
inta
实例变量(而不是使用属性)或显式声明两个NSObject
已经拥有的方法。在objective-c methods块中不能包含@public(或@private)block-它仅适用于实例变量,并且objective-c类中的所有方法都是公共的,因此要修复错误,请在代码中删除第二个@public:
@interface FOO : NSObject
{
@public
int a;
}
-(id)init;
-(void)dealloc;
@end
在objective-c方法中,块不能包含@public(或@private)块-它仅适用于实例变量,并且objective-c类中的所有方法都是公共的,因此要修复错误,请在代码中删除第二个@public:
@interface FOO : NSObject
{
@public
int a;
}
-(id)init;
-(void)dealloc;
@end
为什么要声明公共ivar?为什么要声明公共ivar?