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 中获取委托方法的回调