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类型之后所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)