-1

可能重复:
Objective-C - 何时使用“self”

我需要一个变量从一个视图传递到另一个视图,所以我在 .h 中创建了一个名为 StringC 的属性,并使用 self.StringC 访问它(该部分有效)。

我还需要一些可以在整个视图中访问的数组,但我使用它们的方式不同。

例如我有 lvLabelArray 我正在使用

self.lvLabelArray=[[NSMutableArray alloc]init];

然后我正在使用

[lvLabelArray addObject:LabelText];

那和那有区别吗

[self.lvLabelArray addObject:LabelText];

?

抱歉,我不知道这些变量的术语。

4

1 回答 1

1

那里有一个重要的区别。

self.attribute 根据需要通过对象的 getter 或 setter 函数。这允许您设置初始值、触发更新消息或其他任何内容。

直接访问“属性”会直接访问底层变量,因此您可以绕过所有这些。因此,这绝对是不太受欢迎的工作方式。

避免这种混淆和简单错误的一种常见方法是重命名基础变量。不只是“@synthesize 属性”,而是使用“@synthesize 属性 = _attribute”。这将像以前一样创建 getter 和 setter 方法,但它们将底层变量命名为“_attribute”。这意味着尝试使用没有“self”的“attribute”会触发编译器错误。

于 2012-08-10T18:49:49.690 回答