【问题标题】:@synthesize bar = __bar with two leading underscores?@synthesize bar = __bar 有两个前导下划线?
【发布时间】:2012-06-15 13:22:16
【问题描述】:

我了解到,(至少在大多数情况下)以这种方式在 Objective-C 中合成属性是一种很好的编程风格:

@synthesite foo = _foo;

今天遇到了这行

@synthesite managedObjectContext = __managedObjectContext;

在 Xcode 自动生成的文件AppDelegate.m 中。

一个两个前导下划线的主要区别是什么?

【问题讨论】:

标签: objective-c syntax


【解决方案1】:

没有区别。这只是个人喜好问题(就像在 ivar 中添加下划线一样;很多人不喜欢它)。

【讨论】:

  • 我会说这是有区别的,因为C standard 表示双下划线是保留
  • @Joe 如果您使用双下划线,编译器不会报错,并且程序将以完全相同的方式运行。功能上没有区别。
【解决方案2】:

虽然在某些语言中有时会使用双下划线来表明该变量是“系统”变量而不是应用程序变量,但实际上并没有什么区别。这是一个从未被广泛使用的约定。

【讨论】:

    猜你喜欢
    • 2012-10-05
    • 2015-03-14
    • 2021-04-09
    • 1970-01-01
    • 1970-01-01
    • 2016-10-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多