2017-08-16 60 views
0

我在Swift中构建了一个可可触摸框架来创建一个像iOS Messages "To" Token Field这样的UI组件。Swift Framework前缀?

  1. 我该如何命名框架?

  2. 我该怎么称呼这个班?

我想为它们命名都一样,但我不确定是否应该添加前缀。

一些想法是:

  • UITokenTextView(标准前缀)
  • ACTokenTextView(自定义前缀)
  • TokenTextView(无前缀)

我正在考虑将其命名为UITokenTextView,但如果将来苹果推出了一个同名的课程,这可能会导致冲突吗?

另外,为什么不把它叫做TokenTextView?也就是说,why has Apple kept the UI class prefix in Swift?

+0

注:我问了一个关于添加[Swift类前缀](https://stackoverflow.com/questions/24214863/swift-class-prefix-needed)的相关问题,但这是关于命名一个Cocoa Touch Framework和关于命名一个类(在该框架中),它可以与Apple的UIKit引入的未来类名称相同。 – ma11hew28

+0

Swift团队要么(a)要保持它们与ObjC一致,毕竟这些都是ObjC类;或(b)没有重命名所有这些类的资源。后面的证据可以在从Swift 2到3的转换中看到,许多基本数据类型都放弃了它们的NS前缀(NSURL成为URL,NSDateFormatter成为DateFormatter等)并转换为'struct' –

+0

类名和库名可以是任意的。作为其中一个类的库名称可能相同,但我不建议这样做。库名无法在cocoapods中重复使用 –

回答

1

你应该更好地检查这个文件:

Programming with Objective-C

Class Names Must Be Unique Across an Entire App

在Objective-C,没有命名空间的支持,所有的全局名称(包括所有的类名)的存在一个平坦的全球空间。前缀用作命名空间的排序,使您的类名称具有唯一性。所以,框架提供的Objective-C兼容类应该有一个唯一的前缀代表框架

请不要错过Apple在这篇文章中的描述。

你会注意到,可可和可可触摸类的名称通常是用生理盐水或UI开始。 双字母这些前缀由Apple保留在框架类中使用。

您应该避免使用双字母前缀,因为所有这些前缀都被认为是Apple保留的。 Apple可能会在任何时候拒绝未来使用双字母前缀框架的应用程序。 (我知道一些框架仍然使用双字母前缀,我不确定苹果是否真的会拒绝它们。)

(并且Apple使用一些三字母前缀,例如MTL - ,尽管还有更多两个字母前缀仍然可用。)

2.我应该怎样命名这个类?

只适用于斯威夫特,只要你喜欢。但是最好避免一些可能与Swift标准库成员冲突的名称(或者您认为可能导入到常用应用程序中的任何名称)。

对于与Objective-C兼容的类,请使用至少包含三个字母的正确前缀。您不应该使用UIAC

我想命名他们两人同

你可以选择你喜欢的框架名称即可,但是你最好让你的模块名称和任何现有类型名称不同。 Swift经常与类型名称和模块名称混淆。

+0

始终,始终以您的框架为前缀,即使它们只是快捷。我们有一个名为* SharedUtils *的框架,并且在将应用程序与LocalAuthentication关联时崩溃了。原来,iOS LocalAuthentication框架使用了一个完全称为内部框架的框架。 –