这两个陈述有什么区别?

时间:2013-05-02 17:21:36

标签: objective-c

#import "ViewController.h"

@interface ViewController ()
{
    NSString *string;
}
@end

@implementation ViewController{
    NSString *string;
}

- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
}

这两个陈述有什么区别?哪个更好?

2 个答案:

答案 0 :(得分:6)

假设您所引用的语句是私有实例变量string的两个不同声明,那么没有区别。它们是宣告私人伊娃的两种不同方式。这是一个偏好问题。只需选一个。

我个人使用@implementation块中的那个。我只对私有属性使用类扩展,并声明符合协议。

答案 1 :(得分:0)

嗯,后者只是在不必切换到.h文件的情况下声明变量的方式。 我觉得这只是一个轻松的问题。