小编And*_*opf的帖子

在swift中从另一个ViewController调用函数

我已经查看了Stackoverflow但我无法得到答案.我想创建停止在另一个ViewController中播放声音的函数.但是当我点击停止按钮时,它会破解并显示"EXC_BAD_INSTRUCTION(代码= EXC_I386_INVOP,子代码= 0x0)".这是我的代码.

第一个ViewController

import UIKit
import AVFoundation

class FirstVC: UIViewController {

   var metronome: AVAudioPlayer!
   override func viewDidLoad() {
       super.viewDidLoad()
   do {
        let resourcePath1 = Bundle.main.path(forResource: "music", ofType: "mp3")
        let url = NSURL(fileURLWithPath: resourcePath1!)
        try metronome = AVAudioPlayer(contentsOf: url as URL)

        metronome.prepareToPlay()
        metronome.play()
    } catch let err as NSError {
        print(err.debugDescription)
    }
}
Run Code Online (Sandbox Code Playgroud)

另一个Viewcontroller是

import UIKit
class SecondVC: UIViewController {
   var metronomePlay = FirstVC()

@IBAction func stopBtnPressed(_ sender: Any) {
   metronomePlay.metronome.stop() //"EXC_BAD_INSTRUCTION (code=EXC_I386_INVOP, subcode=0x0)"
   }
}
Run Code Online (Sandbox Code Playgroud)

ios avplayer swift

16
推荐指数
6
解决办法
3万
查看次数

如何将语法 componentsSeparatedByCharactersInSet 更改为 swift 3?

我正在尝试将语法“componentsSeparatedByCharactersInSet”更改为 swift 3。但我不起作用。它如何适应swift 3?这是我在 ios 9 中的代码。它显示“类型‘字符串’的值没有‘componentsSeparatedByCharactersInSet’的成员。

var delimiter = NSCharacterSet(charactersIn: ",")
func parseHeaders(fromLines lines: [String]) -> [String] {
    return lines.componentsSeparatedByCharactersInSet(self.delimiter)
}
Run Code Online (Sandbox Code Playgroud)

ios swift3

2
推荐指数
1
解决办法
1928
查看次数

标签 统计

ios ×2

avplayer ×1

swift ×1

swift3 ×1