web-dev-qa-db-ja.com

Swift:クラスのプレフィックスが必要ですか?

52
ma11hew28

いいえ、 Swiftではクラスプレフィックスは必要ありません 。クラスはそれらが存在するモジュールの名前空間になっているためです。

(たとえば)Swift=からのArrayとアプリで宣言したArrayクラス/構造体の間で明確にする必要がある場合は、 Swift.ArrayまたはMyProject.Arrayとして入力することにより、拡張機能でも同様に機能します。

extension Swift.Array {
    ...
}

extension MyProject.Array {
    ...
}
69
Dave DeLong

いいえ、プレフィックスは絶対に必要ではありません。

アプリにMyApp名があり、カスタムUICollectionViewControllerを宣言する必要があるとします。

必要ないこのようにプレフィックスとサブクラスを作成するには:

class MAUICollectionViewController: UICollectionViewController {}

次のようにします:

class UICollectionViewController {} //no error "invalid redeclaration o..."

なぜ?。宣言したものはcurrent moduleで宣言されているため、これはcurrent targetです。 UICollectionViewControllerからのUIKitUIKitモジュールで宣言されています。

現在のモジュール内での使用方法

var customController = UICollectionViewController() //your custom class
var uikitController = UIKit.UICollectionViewController() //class from UIKit

他のモジュールと区別する方法

var customController = MyApp.UICollectionViewController() //your custom class
var uikitController = UIKit.UICollectionViewController() //class from UIKit