为什么我必须使用'_object'而不是'object'

时间:2013-11-28 11:44:36

标签: objective-c

在Xcode 4.6中,我正在创建一个像这样的数组

entries = [[NSMutableArray alloc] init];

它说我不能和我必须这样做 -

_entries = [[NSMutableArray alloc] init];

在教程中我跟随前者应该没问题。为什么不在这里?

2 个答案:

答案 0 :(得分:1)

可能是因为你有一个名为entries的属性,你将@synthesized改为entries。您可能会收到警告,表示您正在隐藏变量。

如果让Xcode自动合成属性,它将为您创建一个名为_entries的后备存储。

或者,你可以写:

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

答案 1 :(得分:0)

只有在覆盖getter / setter方法时才应使用_object。 “_object =”只是分配,而“self.object =”则调用其setter方法。必须使用_object来阻止setter方法中的无限循环。