在 swift 中声明变量时可以使用通配符吗?

布鲁斯 A.

我正在通过构建 Soundboard 应用程序来学习编码。我使用audioEngine播放一些声音后,我已经改变了曲调位。在 my 中viewDidLoad,我声明我的variables

var audioFile1 = AVAudioFile()
var audioFile2 = AVAudioFile()

if let filePath = Bundle.main.path(forResource: "PeteNope", ofType:
        "mp3") {
        let filePathURL = URL(fileURLWithPath: filePath)

        setPlayerFile(filePathURL)

    }
if let filePath2 = Bundle.main.path(forResource: "Law_WOW", ofType:
        "mp3") {
        let filePath2URL = URL(fileURLWithPath: filePath2)

        setPlayerFile2(filePath2URL)

    }
func setPlayerFile(_ fileURL: URL) {
    do {
        let file1 = try AVAudioFile(forReading: fileURL)

        self.audioFile1 = file1


    } catch {
        fatalError("Could not create AVAudioFile instance. error: \(error).")
    }
}

func setPlayerFile2(_ fileURL: URL) {
    do {
        let file2 = try AVAudioFile(forReading: fileURL)

        self.audioFile2 = file2


    } catch {
        fatalError("Could not create AVAudioFile instance. error: \(error).")
    }
}

然后我nodes按如下方式连接

audioEngine.attach(pitchPlayer)
audioEngine.attach(timePitch)
audioEngine.connect(pitchPlayer, to: timePitch, format: audioFile1.processingFormat)
audioEngine.connect(timePitch, to: audioEngine.outputNode, format: audioFile1.processingFormat)
audioEngine.connect(pitchPlayer, to: timePitch, format: audioFile2.processingFormat)
audioEngine.connect(timePitch, to: audioEngine.outputNode, format: audioFile2.processingFormat) 

所以,我的问题是,由于变量除了数字之外都是相同的,有没有办法以编程方式编写它,这样我就不必nodes单独声明了

regina_fallangi

据我了解您的问题,您拥有大量“PeterNope”和“Law_WOW”类型的资源,并希望快速将它们添加为节点。

您可以按如下方式重构代码以添加所需的资源:

var resources = ["PeterNope", "Law_WOW", "otherResource1", "otherResource2", ...]

func setPlayerFile(_ fileName: String) {
    // make sure resource exists and break if not.
    guard let filePath = Bundle.main.path(forResource: fileName, ofType: "mp3") else {
        print ("resource file \(fileName) does not exist")            
        return
    }

    let fileURL = URL(fileURLWithPath: filePath)

    // open file from resource
    do {
        let file = try AVAudioFile(forReading: fileURL)
    } catch {
        fatalError("Could not create AVAudioFile instance. error: \(error).")
    }

    // connect nodes
    connect(pitchPlayer, to: timePitch, format: file.processingFormat)
    audioEngine.connect(timePitch, to: audioEngine.outputNode, format: file.processingFormat)
}

// connect all resources
attach(pitchPlayer)
audioEngine.attach(timePitch)

for index in 0..(resources.count - 1) {
    setPlayer(resources[index]
}

// or quicker and swiftier:
resources.forEach { setPlayerFile($0) }

我建议阅读一般的 for 循环和控制流:https : //docs.swift.org/swift-book/LanguageGuide/ControlFlow.html

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在Swift的if条件中可以使用字符串变量吗?

来自分类Dev

在Swift Sprite Kit中可以使用Core Data吗?

来自分类Dev

在Swift中可以使用多维词典吗?

来自分类Dev

我可以使用数组中的字符串作为Swift中的选择器吗?

来自分类Dev

声明时可以使用变量吗?

来自分类Dev

在Swift中,我可以使用元组作为字典的键吗?

来自分类Dev

在Swift中,我可以使用for-in枚举来初始化或重置数组吗?

来自分类Dev

在Swift中,可以使用字符串来访问struct属性吗?

来自分类Dev

Swift类可以使用相同的方法扩展多次吗?

来自分类Dev

在Swift项目中可以使用libVLC吗?

来自分类Dev

swift while循环可以使用函数作为参数吗?

来自分类Dev

在Swift中对我自己的ViewController进行单元测试时,使用未声明的类型'ViewController'吗?

来自分类Dev

我可以以某种方式在Swift的一行中对多个变量使用可选绑定吗?

来自分类Dev

在Swift中,非可选变量可以为nil吗?

来自分类Dev

在声明中或使用init初始化Swift类变量?

来自分类Dev

删除Google Cloud Tasks时可以使用通配符吗?

来自分类Dev

我可以使用变量的类型在Java中声明另一个变量吗?

来自分类Dev

故事板中可以使用具有不同Obj-C和Swift名称的UI类吗?

来自分类Dev

Swift变量声明的含义

来自分类Dev

Swift变量声明麻烦

来自分类Dev

测试变量是否在Swift的类中声明

来自分类Dev

在Swift中声明全局变量

来自分类Dev

Swift中类内部的变量声明

来自分类Dev

在iOS Swift中声明变量之间的区别?

来自分类Dev

我可以使用通配符替换吗

来自分类Dev

可以使用通配符卸载 udisksctl 吗?

来自分类Dev

可以使用Swift将工具栏以及按钮添加到UIAlertController吗?

来自分类Dev

我们可以使用Swift在Xcode的Playground上扩展类吗?

来自分类Dev

我可以使用Int从Swift设置Int枚举类型的Objective-C属性吗

Related 相关文章

  1. 1

    在Swift的if条件中可以使用字符串变量吗?

  2. 2

    在Swift Sprite Kit中可以使用Core Data吗?

  3. 3

    在Swift中可以使用多维词典吗?

  4. 4

    我可以使用数组中的字符串作为Swift中的选择器吗?

  5. 5

    声明时可以使用变量吗?

  6. 6

    在Swift中,我可以使用元组作为字典的键吗?

  7. 7

    在Swift中,我可以使用for-in枚举来初始化或重置数组吗?

  8. 8

    在Swift中,可以使用字符串来访问struct属性吗?

  9. 9

    Swift类可以使用相同的方法扩展多次吗?

  10. 10

    在Swift项目中可以使用libVLC吗?

  11. 11

    swift while循环可以使用函数作为参数吗?

  12. 12

    在Swift中对我自己的ViewController进行单元测试时,使用未声明的类型'ViewController'吗?

  13. 13

    我可以以某种方式在Swift的一行中对多个变量使用可选绑定吗?

  14. 14

    在Swift中,非可选变量可以为nil吗?

  15. 15

    在声明中或使用init初始化Swift类变量?

  16. 16

    删除Google Cloud Tasks时可以使用通配符吗?

  17. 17

    我可以使用变量的类型在Java中声明另一个变量吗?

  18. 18

    故事板中可以使用具有不同Obj-C和Swift名称的UI类吗?

  19. 19

    Swift变量声明的含义

  20. 20

    Swift变量声明麻烦

  21. 21

    测试变量是否在Swift的类中声明

  22. 22

    在Swift中声明全局变量

  23. 23

    Swift中类内部的变量声明

  24. 24

    在iOS Swift中声明变量之间的区别?

  25. 25

    我可以使用通配符替换吗

  26. 26

    可以使用通配符卸载 udisksctl 吗?

  27. 27

    可以使用Swift将工具栏以及按钮添加到UIAlertController吗?

  28. 28

    我们可以使用Swift在Xcode的Playground上扩展类吗?

  29. 29

    我可以使用Int从Swift设置Int枚举类型的Objective-C属性吗

热门标签

归档