2016-12-07 85 views
1

我一直在阅读API Design GuidelinesSwift以及一些关于命名我在问题标题中提到的实体的帖子,但我仍然不清楚这一点。我正在开发Swift 3布尔值,常量和@IBAction选择器的Swift命名约定?

  1. 布尔变量的前缀应该是is-,其中has-,或者两个前缀都合适?
  2. 返回方法Bool选择器也应该加上前缀is/has
  3. 例如,您为避免幻数而定义的常量变量应以k开头? (例如,kMaxLength)。我认为这是Objective-C的约定,是否也是Swift
  4. @IBAction选择器的名称应该引用触发动作的控件,还是它所做的任务? (例如:doneButtonTapped VS validateInput
+0

这是相当见仁见智,但如果你想正确地遵循的准则:1个+ 2,是的,没有3,4任务 – Moritz

+0

文件总是一味的。理解某些东西的最好方法是看实现。我们可以检查Swift库并找到最佳实践。而对于'@ IBAction',我个人觉得你提到的方式是正确的,并且还有指导原则。 –

+0

关于数字4:我会考虑实现两种方法:'doneButtonTapped'接收事件并委托给方法'validateInput'。 – Raginmari

回答

1

夫特常规命名惯例都可以在这里https://swift.org/documentation/api-design-guidelines/#general-conventions

  • 的布尔方法和属性用途应该断言时所述用途是读到 接收机 nonmutating,例如x.isEmptyline1.intersects(line2)
  • 其他类型,属性,变量和常量的名称应该读作名词。
+0

例如,代表待办事项的类型如何?它可能有一个标志,指示任务是否已经“完成”。该物业应该是可写的。在这种情况下,我有两个选择:写'item.isDone = true',其中用法是** not **“nonmutating”,或者写'item.done = true',在这种情况下getter将是'let isDone = item.done'。你怎么看? – Raginmari

+0

假设我决定命名属性“完成”。使用“is”前缀查询属性成为可能的一种方法是扩展类型:'var isDone:Bool {return done}'。这个明显的缺点是有两种不同的方式来读取同一个属性。 – Raginmari