【发布时间】:2015-10-10 09:48:54
【问题描述】:
我有一个播放歌曲的应用程序,我有一个外部类,它有一个 playSound 函数和所有需要的变量:
class Song: NSObject {
var audioPlayer: AVAudioPlayer!
var deviceCurrentTime: NSTimeInterval!
func playSong() {
let sound = NSBundle.mainBundle().pathForResource("song", ofType: "mp3")
let soundData = NSData(contentsOfFile: sound!)
// self.audioPlayer = AVAudioPlayer(data: soundData!) throws
self.audioPlayer = nil
do {
self.audioPlayer = try AVAudioPlayer(data: soundData!)
}
catch {
print("Handle \(error) here")
}
let delay:NSTimeInterval = 0.0//100ms
var playtime:NSTimeInterval
playtime = audioPlayer.deviceCurrentTime + delay
self.audioPlayer?.playAtTime(playtime)
self.audioPlayer?.play()
}
然后在我的 mainViewController 的 ViewDidLoad 中,我想播放歌曲并从我的 Song 对象中访问方法:
super.viewDidLoad()
let vc: NSObject = Song()
if let myVc = vc as? Song {
myVc.playSong()
}
但这不会播放歌曲...如果我也使用 playSong 方法将 Song 中的所有变量放入 mainViewControler 并在 viewDidLoad 中说 playSong(),它可以工作,但我想将它放在外部类中。
有什么帮助吗? :)
【问题讨论】:
-
对不起,问题的正确名称应该是:Call a method from another class in swift 2.0
-
使委托...检查这个....stackoverflow.com/questions/25204255/…
-
也非常感谢!