1

可能重复:
Objective-C 2.0 中的属性和实例变量

我写了下面的代码,都在 xcode 3/ios4 和 xcode 4/ios5 上工作

#import <UIKit/UIKit.h>

@interface testViewController : UIViewController {

NSString *s;

}
@property (retain ,nonatomic) NSString *s;
@end

没有变量声明的那个

#import <UIKit/UIKit.h>

@interface testViewController : UIViewController {



}
@property (retain ,nonatomic) NSString *s;
@end

#import <UIKit/UIKit.h>

@interface testViewController : UIViewController {

NSString *s;

}

写有/没有变量声明有什么区别

据我所知,@property 意味着替换/简化属性的方法 setter/getter。{}中的变量声明是否意味着不能在testViewController外部访问的私有属性?

4

1 回答 1

0

当您声明没有相关 ivar 的属性时,编译器默认注入它。一个区别是隐式 ivar 在派生类和您的类之外是不可见的。

于 2012-04-29T12:36:15.137 回答