在 Xcode 4 中创建连接时,名称带有 _ 前缀
当在 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
为什么不直接使用您的属性(例如 self.mainNavController )而不是直接使用支持的 ivars ?
阅读 Apple 的相关内容 使用访问器方法:
属性封装了内存管理代码,从而减少了样板代码。
此外,使用
_
作为支持 ivars 前缀的约定可以防止您错误地直接访问支持 ivars(例如,无法保留对象)。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:
Properties encapsulate memory management code and thus reduce boilerplate.
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).