Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 无法使用点符号swift访问函数成员_Ios_Swift_Function_Syntax_Avplayer - Fatal编程技术网

Ios 无法使用点符号swift访问函数成员

Ios 无法使用点符号swift访问函数成员,ios,swift,function,syntax,avplayer,Ios,Swift,Function,Syntax,Avplayer,我无法访问函数外部的playerAv()函数的元素。我如何访问它 我还试图删除函数,并在任何函数之外使用这些行,但在第二行中出现了一个错误。为什么我不能在函数外分配audioLink值 var audioLink = "somewebpage.com/abc.pls" var player:AVPlayer = AVPlayer(URL: NSURL(string: audioLink)) 我试过了 let pa = playerAv() pa.player.volume

我无法访问函数外部的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
,则此变量的作用域仅在函数内

您需要将玩家创建放在控制器或任何适合您的类中:

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
你很困惑

你把类和函数搞混了

函数的局部变量在函数外部无法通过设计访问。它们只存在于函数的作用域内,并在函数返回时停止存在。因此,playerAv()函数没有做任何有用的事情

在我看来,您希望playerAv成为一个类,带有实例变量:

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 

Swift不是JavaScript。如果你想要成员变量,你需要结构或类。你帮了很多忙。谢谢