我应该按照Objective-C Conventions: Class Names Must Be Unique Across an Entire App的推荐给我的Swift类名称设置三个字母的前缀吗?
答案 0 :(得分:68)
不,you do not need class prefixes in Swift,因为类被命名为它们所在的模块。
如果您需要消除(例如)Swift中的Array
和您在应用中声明的Array
类/结构之间的歧义,可以将其键入为一个Swift.Array
或MyProject.Array
。这也适用于扩展:
extension Swift.Array {
...
}
extension MyProject.Array {
...
}
答案 1 :(得分:16)
不,绝对不需要前缀。
假设您的应用具有MyApp
名称,则需要声明自定义UICollectionViewController
。
您不需要来加上前缀和子类,如下所示:
class MAUICollectionViewController: UICollectionViewController {}
这样做:
class UICollectionViewController {} //no error "invalid redeclaration o..."
<强>为什么吗。因为您声明的内容是在当前模块中声明的,这是您的当前目标。来自UICollectionViewController
的{{1}}在UIKit
模块中声明。
如何在当前模块中使用它?
UIKit
如何区别于其他模块?
var customController = UICollectionViewController() //your custom class
var uikitController = UIKit.UICollectionViewController() //class from UIKit