我正在 Swift 中构建一个 Cocoa Touch Framework 来创建一个 UI 组件,比如iOS Messages "To" Token Field

  1. 我应该给框架起什么名字?

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

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

一些想法是:

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

我正在考虑将它命名为UITokenTextView ,但是如果将来 Apple 引入一个同名的类,这会导致冲突吗?

另外,为什么不直接称它为TokenTextView呢? 也就是说, 为什么 Apple 在 Swift 中保留了 UI 类前缀?

#1楼 票数:1

你最好检查一下这个文件:

用 Objective-C 编程

整个应用程序中的类名称必须是唯一的

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

请不要错过 Apple 文档中的此描述。

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

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

(Apple 使用一些三字母前缀,如MTL -,尽管还有更多的两字母前缀可用。)

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

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

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

我正在考虑给它们起相同的名字

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

#2楼 票数:0

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

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

  ask by ma11hew28 translate from so

未解决问题?本站智能推荐:

1回复

替代从多个类swift继承

我有一个使用'frame'管理UIKit元素定位的类: 现在我想添加一个继承自UIbutton的类和一个继承自UILabel的类。 他们都应该能够使用EasyPos类中的方法。 我该怎么做呢? (我尝试从两个类继承,没有工作) 我知道它与协议有关。 但我也无法让这个工作。
2回复

如何使用Swift 4/5扩展多个类

我正在尝试扩展多个类,即UIButton和UITextField。 它们都具有相同的功能,在我调用该功能时可以摆动。 我试图不重复我的代码不止一次。 我一直在尝试使用protocal,以便可以扩展并编写所需的函数,然后在我的类中对其进行扩展,但是问题出在我的函数中,我必须调用self,但是
1回复

Swift 中的 super 前缀

对 Swift/编程完全是个菜鸟,所以请原谅这个看似显而易见的问题; 有人可以向我解释超级前缀的功能吗? 它是否允许覆盖保留父类的功能? 我正在编写的教程告诉我它用于让父类知道何时调用子类? 不确定我是否完全理解这一点。 先谢谢您的帮助! import UIKit class ViewContro
1回复

在Swift的文本字段内添加前缀(iOS)

我想创建一个前缀为“ R_”的文本字段,该文本字段不可编辑。 这是我的代码...
1回复

如何使用前缀屏蔽 UITextfield?

只是我需要让 UITextField 带有一些前缀, fe +48然后像这样___ ___ ___屏蔽电话号码。 我怎样才能在代码中做到这一点? UItextField 中的结果应该看起来像+48 ___ ___ ___并且只有带有_的地方应该是可编辑的。 我使用 NSString+Mask c
1回复

Swift 中的 UIPickerView

我有一个标签,我想以编程方式从我的用户那里添加生日,我设法用数据填充,但我无法正确提取数据,这是我的代码:显示错误,例如索引超出范围,然后崩溃我的应用程序
1回复

Swift UITableViewCell

我在这里很新,我无处可问,所以我为我在这个问题中的格式道歉。 所以我不小心在 Main.Storyboard 上编辑了我的 UITableView(我不小心删除了我的第一个也是唯一的原型单元格),当我尝试放回原型单元格并重新连接我的 UITableViewCell 变量时,它现在给了我这个错误:
1回复

Swift中的持久化UIToolbar

我一直在寻找这个问题的答案,并找到了一些在Obj-C中执行类似操作,将工具栏添加至appdelegate等的答案,但是我想知道在Swift中是否有更好的方法,因此工具栏将显示在所有VC上。 的斯威夫特版本本 ,或此为一例。 我发现了这个问题,但没有人提供任何答案,这是否意味着Swift中没有