1

我对此有点困惑:

为什么有些程序员在他们的.h文件中使用它

{
IBOutlet UIScrollView* scrollView;
IBOutlet UIPageControl* pageControl;
}
@property (nonatomic, retain) UIView *scrollView;
@property (nonatomic, retain) UIPageControl* pageControl;

而只是这个...

    @property (nonatomic, retain) UIView *scrollView;
    @property (nonatomic, retain) UIPageControl* pageControl;

我是 XCode 和 Objective C 的新手,如果有人可以向我解释这一点,我会很高兴。谢谢。

4

3 回答 3

2

在工具链的最新版本中,这样做就足够了:

@property (nonatomic, retain) IBOutlet UIView *scrollView;

(如果您不放置 IBOutlet,您将无法将其连接到界面构建器)

有些人还是老样子,有些人只是传统,有些人不知道可以跳过,或者因为它们只是旧项目。

于 2013-07-05T08:08:21.550 回答
1

直到最近,您才可以在没有相应实例变量的情况下声明属性(如果需要,编译器现在将为您创建支持实例变量,但情况并非总是如此)。

于 2013-07-05T08:08:43.143 回答
0
  1. 奥特莱斯是属性

  2. 属性需要一个 ivar(除非一些非常特殊的情况)

  3. 从 Xcode 4.3 或 4.4 开始,如果没有,编译器会自动添加和合成 ivars。

于 2013-07-05T08:13:40.363 回答