swift 与 NSObject

Posted feng9exe

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了swift 与 NSObject相关的知识,希望对你有一定的参考价值。

以NSObject为基类,只是为了提供Objective-C API的使用入口;

经由@object修改的对象,是这些api的参量。

NSObject是swift与oc特有机制沟通的桥梁。

 

Subclassing NSObject in Swift gets you Objective-C runtime flexibility but also Objective-C performance. Avoiding NSObject can improve performance if you don‘t need Objective-C‘s flexibility.

https://stackoverflow.com/questions/24057525/swift-native-base-class-or-nsobject

 

Before Swift 4

For example, if one subclassed from NSObject, the compiler created Objective-C entry points for all methods in such classes. The mechanism is called @objc inference.

https://stackoverflow.com/questions/44379348/the-use-of-swift-3-objc-inference-in-swift-4-mode-is-deprecated

 

Swift classes that are subclasses of NSObject:

  • are Objective-C classes themselves
  • use objc_msgSend() for calls to (most of) their methods
  • provide Objective-C runtime metadata for (most of) their method implementations

https://stackoverflow.com/questions/24057525/swift-native-base-class-or-nsobject

 

Some Objective-C APIs—like target-action—accept method or property names as parameters, then use those names to dynamically call or access the methods or properties.

https://developer.apple.com/documentation/swift/using_objective-c_runtime_features_in_swift

以上是关于swift 与 NSObject的主要内容,如果未能解决你的问题,请参考以下文章

子类化 NSObject 和使用泛型时 Swift 编译错误

无法在目标 C 中调用 swift 函数。获取 NSObject 的错误接口声明

包含 NSObject 子类时,Swift 2.0 Set 无法按预期工作

没有在 NSObject 类 ios swift 中获取委托方法的回调

Swift3:类型“NSObject”不符合协议“URLAuthenticationChallengeSender”

使用 NSObject 的 Swift 2.1 委托