IOS:在.h中声明属性时,什么';self.var和just-var的区别是什么?
可能重复:IOS:在.h中声明属性时,什么';self.var和just-var的区别是什么?,ios,properties,self,Ios,Properties,Self,可能重复: 我需要一个变量从一个视图传递到另一个视图,所以我在.h中创建了一个名为StringC的属性,并使用self.StringC访问它(这部分工作正常) 我还需要一些可以在整个视图中访问的阵列,但我使用的是不同的阵列 例如,我有lvLabelArray,我正在使用 self.lvLabelArray=[[NSMutableArray alloc]init]; [lvLabelArray addObject:LabelText]; 后来我用 self.lvLabelArray=[[NS
我需要一个变量从一个视图传递到另一个视图,所以我在.h中创建了一个名为StringC的属性,并使用self.StringC访问它(这部分工作正常) 我还需要一些可以在整个视图中访问的阵列,但我使用的是不同的阵列 例如,我有lvLabelArray,我正在使用
self.lvLabelArray=[[NSMutableArray alloc]init];
[lvLabelArray addObject:LabelText];
后来我用
self.lvLabelArray=[[NSMutableArray alloc]init];
[lvLabelArray addObject:LabelText];
这和你的想法有区别吗
[self.lvLabelArray addObject:LabelText];
?
很抱歉,我不知道这些变量的术语。有一个重要的区别 属性通过对象的getter或setter函数(视情况而定)。它允许您设置初始值、触发更新消息或其他任何内容 直接访问“attribute”会直接访问底层变量,因此可以忽略所有这些。因此,这肯定是不太可取的工作方式 避免这种混淆和简单错误的一种常见方法是重命名基础变量。使用“@synthesis attribute=\u attribute”,而不仅仅是“@synthesis attribute”。这将像以前一样创建getter和setter方法,但它们将在底层变量名为“\u attribute”时被删除。这意味着尝试使用不带“self”的“attribute”将触发编译器错误