Swift: Необходим Префикс Класса?



должен ли я дать моим именам классов Swift трехбуквенный префикс, как рекомендовано соглашения Objective-C: имена классов должны быть уникальными во всем приложении?

543   2  

2 ответов:

нет, вам не нужны префиксы классов в Swift, потому что классы находятся в пространстве имен модуля, в котором они живут.

Если вам нужно устранить неоднозначность между (например)Array от Swift и an Array class / struct, который вы объявили в своем приложении, вы можете сделать это, введя его как Swift.Array или MyProject.Array. Это также работает с расширениями:

extension Swift.Array {
    ...
}

extension MyProject.Array {
    ...
}

нет, префикс определенно не neeeded.

предположим, что ваше приложение имеет MyApp имя, и вам нужно объявить свой пользовательский UICollectionViewController.

вы не нужно для префикса и подкласса, как это:

class MAUICollectionViewController: UICollectionViewController {}

делай так:

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

почему?. Потому что то, что вы объявили, объявлено в модуль, который является вашим цель. И UICollectionViewController от UIKit объявляется в UIKit модуль.

как использовать его в текущем модуле?

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

Comments

    Ничего не найдено.