gpt4 book ai didi

工厂中的 Swift CMutablePointers,例如新音乐序列

转载 作者:搜寻专家 更新时间:2023-11-01 06:24:48 24 4
gpt4 key购买 nike

如何在 Swift 中使用 C 级工厂方法?

让我们尝试使用诸如 NewMusicSequence() 之类的工厂。

var status:OSStatus
var sequence:MusicSequence
status=NewMusicSequence(&sequence)

此错误显示“错误:变量‘sequence’在初始化之前通过引用传递”。将序列设置为零,您将得到 EXC_BAD_INSTRUCTION。

你可以尝试像这样显式:

var sp:CMutablePointer<MusicSequence>=nil
status=NewMusicSequence(sp)

但是当你将 sp 设置为 nil 时,你会得到一个错误的访问异常。如果你不设置 sp,你会得到一个“错误:变量‘sp’在初始化之前使用”

我希望这是实现它的方式,但它不是:

import AudioToolbox
var sequence: MusicSequence?
var status:OSStatus = NewMusicSequence(&sequence)

错误:无法将表达式的类型“OSStatus”转换为类型“inout MusicSequence?”var status:OSStatus = NewMusicSequence(&sequence)

这是 reference .

最佳答案

我认为问题在于您需要一个可选值。可选值始终初始化为 nil,并且只有可选值可以是 nil

var sequence: MusicSequence?
let status = NewMusicSequence(&sequence)

关于工厂中的 Swift CMutablePointers,例如新音乐序列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24098691/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com