无法使用点表示法访问函数成员 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
我无法在函数外部访问 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