2011-07-04 104 views
0

当创建在Xcode 4新出口进入像通常必要的代码,但它前缀一个_在头文件接口(但不是在属性):创建连接_

UINavigationController *_mainNavController; 
UIViewController *_rootView; 

它也做到这一点的实现文件:

@synthesize mainNavController = _mainNavController; 
@synthesize rootView = _rootView; 

虽然我当然可以用前缀_使用它们,它只是让我的代码杂乱。我在做可怕的错误吗?

非常感谢提前。

回答

2

我当然可以用 作为前缀_。

为什么不直接使用你的属性(如self.mainNavController)而不是后备ivars?

阅读苹果公司对此有什么看法using accessor methods

有时可能变得单调乏味或 迂腐,但是如果你使用访问 方法一致的 有问题的内存管理 大幅下降的可能性。如果你是 在整个代码中使用保留和释放实例 变量,那么你的 几乎肯定会做错误的 的事情。

属性封装内存管理代码,从而减少样板。

唯一的地方,你不应该使用 存取方法来设置实例变量 在init方法和 dealloc

另外,使用_前缀后备ivars的约定会阻止您直接错误地访问后备ivars(并且无法保留对象)。

+0

哦,它现在有道理!非常感谢你。 – GarethPrice

+0

@GarethPrice不客气:) – albertamg