在 Xcode 4 中创建连接时,名称带有 _ 前缀

发布于 2024-11-18 13:34:13 字数 369 浏览 3 评论 0原文

当在 Xcode 4 中创建新的插座时,它会像往常一样输入必要的代码,但它会在头文件接口中添加 _ 前缀(但不在属性中):

UINavigationController *_mainNavController;
UIViewController *_rootView;

它也在实现文件中执行此操作:

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

虽然我当然可以使用它们带有前缀 _,它只会让我的代码变得混乱。我做错了什么可怕的事情吗?

非常感谢。

When creating a new outlet in Xcode 4 it enters the necessary code like usual, but it prefixes a _ in the header file interface (but not in the properties):

UINavigationController *_mainNavController;
UIViewController *_rootView;

it also does this in the implementation file:

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

While I can of course use them with the prefixed _, it just makes my code messy. Am I doing something horribly wrong?

Many thanks in advance.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

能否归途做我良人 2024-11-25 13:34:13

我当然可以将它们与
前缀_。

为什么不直接使用您的属性(例如 self.mainNavController )而不是直接使用支持的 ivars ?

阅读 Apple 的相关内容 使用访问器方法

有时它可能看起来很乏味或
迂腐,但如果你使用访问器
方法一致的机会
内存管理有问题
大幅减少。如果你是
在实例上使用保留和释放
整个代码中的变量,您
几乎肯定是做错了
东西。

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

唯一不应该使用的地方
设置实例的访问器方法
变量位于 init 方法中并且
dealloc

此外,使用 _ 作为支持 ivars 前缀的约定可以防止您错误地直接访问支持 ivars(例如,无法保留对象)。

I can of course use them with the
prefixed _.

Why don't you use your properties (like self.mainNavController) instead of the backing ivars directly?

Read what Apple has to say about using accessor methods:

Sometimes it might seem tedious or
pedantic, but if you use accessor
methods consistently the chances of
having problems with memory management
decrease considerably. If you are
using retain and release on instance
variables throughout your code, you
are almost certainly doing the wrong
thing.

Properties encapsulate memory management code and thus reduce boilerplate.

The only places you shouldn’t use
accessor methods to set an instance
variable are in init methods and
dealloc.

Also, the convention of prefixing backing ivars with _ prevents you from accessing the backing ivars directly by mistake (and fail to retain an object, for example).

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文