Consider two Swift protocols:

```
@objc protocol SomeProtocol { }

protocol SomeOtherProtocol: NSObjectProtocol { }

```

What is the difference between declaring a Swift protocol `@objc` or having it conform to `NSObjectProtocol`? I know that any protocol that does not `@objc` will not be bridged to Objective-C, but what is the difference between these two declarations in a pure Swift application? As I understand it, `@objc` should conform `SomeProtocol` to `NSObjectProtocol` through the top-level `SwiftObject`.