Ios Swift框架前缀?

Ios Swift框架前缀?,ios,swift,class,uikit,naming,Ios,Swift,Class,Uikit,Naming,我正在Swift中构建一个Cocoa-Touch框架,以创建类似的UI组件 我应该给框架命名什么 我该给这个班取什么名字 我正在考虑将它们命名为相同的名称,但我不确定是否应该添加前缀 有些想法是: UITokenTextView(标准前缀) ACTokenTextView(自定义前缀) TokenTextView(无前缀) 我正在考虑将其命名为UITokenTextView,但如果将来苹果引入一个同名的类,会不会引起冲突 另外,为什么不直接称之为TokenTextView?也就是说,您最好检

我正在Swift中构建一个Cocoa-Touch框架,以创建类似的UI组件

  • 我应该给框架命名什么

  • 我该给这个班取什么名字

  • 我正在考虑将它们命名为相同的名称,但我不确定是否应该添加前缀

    有些想法是:

    • UITokenTextView
      (标准前缀)
    • ACTokenTextView
      (自定义前缀)
    • TokenTextView
      (无前缀)
    我正在考虑将其命名为
    UITokenTextView
    ,但如果将来苹果引入一个同名的类,会不会引起冲突


    另外,为什么不直接称之为
    TokenTextView
    ?也就是说,您最好检查一下本文档:

    在Objective-C中,没有名称空间支持,所有全局名称(包括所有类名)都存在于平面全局空间中。前缀用作某种名称空间,使类名唯一。因此,框架提供的与Objective-C兼容的类应该有一个表示框架的唯一前缀

    请不要错过苹果文档中的描述

    您会注意到Cocoa和Cocoa Touch类名通常以NS或UI开头两个字母这样的前缀由Apple保留,用于框架类

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

    (苹果使用了大约三个字母的前缀,比如
    MTL
    -,尽管还有更多的两个字母前缀可用。)

    2。我应该给班级起什么名字?

    仅适用于Swift课程,如您所愿。但最好避免使用一些可能与Swift标准库成员冲突的名称(或任何您认为会导入普通应用程序的名称)

    对于Objective-C兼容类,请使用至少包含三个字母的适当前缀。您不应该使用
    UI
    AC

    我正在考虑给他们两个取相同的名字


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

    我认为,如果一个类有Swift版本类型、结构或类,它的前缀会被删除,例如:NSData vs Data,或者保留前缀


    换句话说,数据和NSData是不同的类型,不仅仅是去掉NS前缀。

    注意:我问了一个有关添加的相关问题,但这是关于命名Cocoa Touch框架和命名一个类(在上述框架中),该类可能与苹果UIKit引入的未来类同名。Swift团队(a)要使它们与ObjC保持一致,这些毕竟是ObjC类;或者(b)没有重命名所有这些类的资源。从Swift 2到Swift 3的转换中可以看出后者的证据,其中许多基本数据类型放弃了其
    NS
    前缀(
    NSURL
    变成
    URL
    NSDateFormatter
    变成
    DateFormatter
    ,等等)并转换为
    struct
    ,以及类名和库名可以是任意的。其中一个类的库名称可能相同,但我不建议这样做。库名称不能在cocoapodsAlways中重复,始终在框架前面加前缀,即使它们只是swift。我们有一个名为SharedUtils的框架,当将应用程序与LocalAuthentication链接时,它崩溃了。事实证明iOS LocalAuthentication框架使用的内部框架正是这样。