ios –.self在Swift中的struct类型之后

ios –.self在Swift中的struct类型之后,第1张

概述我对金属示例中的一行代码感到困惑,其中内存指针绑定到一个类型. uniforms = UnsafeMutableRawPointer(uniformBuffer.contents()).bindMemory(to: Uniforms.self, capacity: 1) 我的困惑是制服后的自我类型. Uniforms是一个在Objective-C文件中定义的结构,代码不会在没有.self的情况下运 我对金属示例中的一行代码感到困惑,其中内存指针绑定到一个类型.

uniforms = UnsafeMutableRawPointer(uniformBuffer.contents()).bindMemory(to: Uniforms.self,capacity: 1)

我的困惑是制服后的自我类型. Uniforms是一个在Objective-C文件中定义的结构,代码不会在没有.self的情况下运行.为什么这有必要?

解决方法 .self返回相应类型的元类型实例.可以将其视为类型安全类型标识符(例如,比使用字符串更安全).然后,您可以安全地调用此类元类型实例上的可用初始值设定项,静态方法和静态属性.

例如,您也可以将其存储在变量中:

let Metatype: Uniforms.Type = Uniforms.self

和Uniforms.Type是实际的元类型(即类型的类型).

元类型速成课程.一个非常快速的例子来了解这个元组件实际上是如何有用的:

class Super {    let ID: Int    required init(ID: Int) { self.ID = ID }}class SubA: Super { ... }class SubB: Super { ... }let subclass: Super.Type = SubA.self

然后,稍后,使用子类创建一个实例,而不对实际的子类类型名称进行硬编码:

let obj = subclass.init(ID: 123) // new SubA instance.
总结

以上是内存溢出为你收集整理的ios –.self在Swift中的struct类型之后全部内容,希望文章能够帮你解决ios –.self在Swift中的struct类型之后所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1060104.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-25
下一篇 2022-05-25

发表评论

登录后才能评论

评论列表(0条)

保存