Ios 无法使用点符号swift访问函数成员
我无法访问函数外部的playerAv()函数的元素。我如何访问它 我还试图删除函数,并在任何函数之外使用这些行,但在第二行中出现了一个错误。为什么我不能在函数外分配audioLink值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
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。如果你想要成员变量,你需要结构或类。你帮了很多忙。谢谢