В документации указано
Примечание
Классы Swift не наследуются от универсального базового класса. Классы вы определить без указания суперкласса автоматически стать базой классы для вас, чтобы вы могли опираться ".
Отрывок из: Apple Inc." Язык быстрого программирования. "iBooks.
Это не имеет большого значения для меня. Существует причина, почему Objective-C имеет универсальный базовый класс, и та же причина должна применяться к Swift, не так ли? NSObject управляет семантикой сохранения/выпуска, реализацией по умолчанию для isEqual:, hash и description. Все эти функции доступны также в Swift.
(Objective-C и Swift используют ту же среду выполнения)
Итак, что с этим? Являются ли классы Swift без определенных суперклассов только NSObject, которые представляют собой правильные корневые классы под капотом? Или это дублирование объекта по умолчанию для каждого нового корневого класса? Или они создали еще один Swift-baseclass? Реализация retain и release действительно сложна, потому что ей необходимо одновременно учитывать многопоточность и слабые ссылки.
Может быть, универсальный базовый класс в Swift (несмотря на то, что говорит документация)? Это было бы очень удобно, потому что в Objective-C я могу, например. напишите расширения, которые позволяют мне объединять вызовы методов в основной runloop, например [obj.eventually updateCounter], который может быть прочитан как "вызов -updateCounter в следующий раз, когда основная runloop получает контроль. Если, тем временем, я снова вызываю этот метод, он должен вызывается только один раз в любом случае. С помощью этого расширения можно реализовать -[UIView setNeedsDisplay] как [self.eventually display]; Это невозможно в Swift, если нет универсального базового класса (или, может быть, он знает, кто знает?)