无法使用点表示法访问函数成员 swift

Cannot access a function member using dot notation swift

我无法在函数外部访问 playerAv() 函数的元素。我怎样才能访问它?

我还尝试删除该函数并在任何函数之外使用这些行,但在第二行出现错误。为什么我不能在函数外分配 audioLink 值?

var audioLink = "somewebpage.com/abc.pls"
var player:AVPlayer = AVPlayer(URL: NSURL(string: audioLink))

我试过了

let pa = playerAv()
pa.player.volume = currentValue //I got an error here:(
println(currentValue)

部分代码:

 func playerAv(){
        
        var audioLink = "somewebpage.com/abc.pls"
        var player:AVPlayer = AVPlayer(URL: NSURL(string: audioLink))
    }
@IBAction func sliderValueChanged(sender: UISlider) {
        var currentValue = Float(sender.value)
        println(currentValue)
        player.volume = currentValue
    }

谢谢

如果在函数内部声明var player,则该变量的作用域仅在函数内部。

您需要将 Player 创建放入控制器或任何适合您的 class 中:

class MyPlayer {

    var player: AVPlayer

    init(link: String) {
        self.player = AVPlayer(URL: NSURL(string: link))
    }

}

let mp = MyPlayer(link: "http://somewebpage.com/abc.pls")
mp.player.volume = 2

你很困惑。

您混淆了 classes 和函数。

根据设计,函数的局部变量在函数外部不可访问。它们只存在于函数范围内,一旦函数returns就不存在了。因此,您的 playerAv() 函数没有做任何有用的事情。

在我看来,您希望 playerAv 成为 class,实例变量为:

class PlayerAv
{
  let audioLink: String = "http://somewebpage.com/abc.pls"
  var player: AVPlayer
  init()
  {
    player = AVPlayer(URL: NSURL(string: self.audioLink))
  }
}

现在您可以创建一个 PlayerAv 对象并使用它:

let pa = playerAv()
pa.player.volume = currentValue