swift @objc dynamic
2021-06-23 02:06
标签:als lan sed eth enc nbsp today current one @objc vs @objc dynamic @objc: Objective-C entry points One can explicitly write @objc dynamic:入口+动态派发机制。using the Objective-C message send mechanism。 A declaration that is This change is intended to separate current implementation limitations from future language evolution: the current implementation supports This change therefore does two things. First, it makes it clear that the https://github.com/apple/swift-evolution/blob/master/proposals/0160-objc-inference.md 备注: https://stackoverflow.com/questions/48559768/what-does-objc-dynamic-var-mean-in-swift-4 swift @objc dynamic 标签:als lan sed eth enc nbsp today current one 原文地址:https://www.cnblogs.com/feng9exe/p/9676051.html@objc on any Swift declaration that can be expressed in Objective-C.
dynamic no longer infers @objc
dynamic will no longer infer @objc. For example:dynamic by always using the Objective-C message send mechanism, allowing replacement of dynamic implementations via the Objective-C runtime (e.g., class_addMethod and class_replaceMethod). In the future, it is plausible that the Swift language and runtime will evolve to support dynamic without relying on the Objective-C runtime, and it‘s important that we leave the door open for that language evolution.dynamic behavior is tied to the Objective-C runtime. Second, it means that well-formed Swift 4 code will continue to work in the same way should Swift gain the ability to provide dynamic without relying on Objective-C: at that point, the method foo() above will become well-formed, and the method bar() will continue to work as it does today through the Objective-C runtime. Indeed, this change is the right way forward even if Swift never supports dynamic in its own runtime, following the precedent of SE-0070, which required the Objective-C-only protocol feature "optional requirements" to be explicitly marked with @objc.@objc exposes the variable to the ObjC runtime. dynamic tells the runtime to use dynamic dispatch instead of the default static dispatch. dynamic also implies @objc so @objc dynamic is redundant. You mostly utilize them in KVO and Cocoa Binding
下一篇:23、【C++基础】复制构造函数