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++基础】复制构造函数