ios – “MTLBuffer”类型的值没有成员’didModifyRange’

ios – “MTLBuffer”类型的值没有成员’didModifyRange’,第1张

概述我很困惑,因为我在 Swift 4中创建了一个MTLBuffer但我无法使用方法didModifyRange. 有趣的是,我仍然可以在Apple文档中找到这个并且没有听说过这个被更改. 为什么“MTLBuffer”类型的错误值没有成员’didModifyRange’发生? 以下代码将在最新版本的XCode中生成此错误 let device = MTLCreateSystemDefaultDevic 我很困惑,因为我在 Swift 4中创建了一个MTLBuffer但我无法使用方法dIDModifyRange.

有趣的是,我仍然可以在Apple文档中找到这个并且没有听说过这个被更改.

为什么“MTLBuffer”类型的错误值没有成员’dIDModifyRange’发生?

以下代码将在最新版本的XCode中生成此错误

let device = MTLCreateSystemDefaultDevice()var buffer = device?.makeBuffer(length: 3,options: [])let range = Range<Int>(NSRange())buffer.dIDModifyRange(range)
解决方法 根据 documentation,该方法的签名如下所示:

func dIDModifyRange(_ range: Range<Int>)

你传递的NSRange明显不同于Swift Range< Int>.因此,为了使其工作,只需传递适当的范围对象.

附:范围<诠释>用最小…最大方案(例如0 … 100)定义.

编辑:

一些Metal框架签名仅在macOS 11.1上可用,包括dIDModifyRange:,所以如果你试图在iOS上调用它,即使在标题中有导入Metal,也会给你这个错误.

所以下面的代码将在macOS 11.1下编译

import Metal//  ...    guard        let device = MTLCreateSystemDefaultDevice(),let buffer = device.makeBuffer(length: 3,options: [])        else {            return    }    buffer.dIDModifyRange(Range<Int>(1...10))

……并且不会,在iOS下.

总结

以上是内存溢出为你收集整理的ios – “MTLBuffer”类型的值没有成员’didModifyRange’全部内容,希望文章能够帮你解决ios – “MTLBuffer”类型的值没有成员’didModifyRange’所遇到的程序开发问题。

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

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

原文地址: https://outofmemory.cn/web/1005928.html

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

发表评论

登录后才能评论

评论列表(0条)

保存