2011-05-11 47 views

回答

3

,你在头/接口,将自动公开的方法不要使用@public或其他访问关键接口定义之外,因为你不声明在Objective-C的公共或私有方法。

只要可以从课外公开访问。如果你只有一个dd是一个实现,但不要在头文件/接口中公开它(或仅在class extension中公开它),它是私有的。

@interface FOO : NSObject 
{ 
@public 
    int a; 
} 

- (id)init; 
- (void)dealloc; 

@end 

现在你为什么会想声明一个公共int a实例变量(而不是使用属性)或明确声明NSObject已经有两个方法我是无法理解。

1

在objective-c方法块不能包含@public(或@private)块 - 它只适用于实例变量,并且Objective-c类中的所有方法都是公共的,所以要修复错误,请删除第二个@public代码:

@interface FOO : NSObject 
{ 
@public 
    int a; 
} 
-(id)init; 
-(void)dealloc; 
@end