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