Есть ли разница между двумя классами, унаследованными от NSObject, но помеченными @ Swj в Swift? - PullRequest
0 голосов
/ 30 мая 2019

Интересно, добавит ли @objc некоторую дополнительную функциональность для классов, унаследованных от NSObject в Swift.

Это Swift 5.0 с Xcode 10.2.1.

@objc class X: NSObject {
    var x = 0
}

class Y: NSObject {
    var y = 0
}

Есть лисемантическая разница между этими двумя классами с точки зрения Свифта?

1 Ответ

0 голосов
/ 30 мая 2019

Единственная разница здесь в том, что class X можно вызвать из Objective-C, а class Y нельзя. Тот факт, что они оба наследуются от NSObject, является совершенно отдельной вещью.

Это то же самое, что иметь классы, которые наследуются от UIViewController, если один имеет префикс @objc, он может быть вызван из кода Objective-C, а другой не может, не имеет никакого отношения к тот факт, что они являются UIViewController подклассами.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...