ios - 无法使用点符号快速访问函数成员

标签 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 = 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
    }

谢谢

最佳答案

你很困惑。

您正在混淆类和函数。

根据设计,函数的局部变量在函数外部不可访问。它们只存在于函数的范围内,一旦函数返回就不存在了。因此,您的 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 

关于ios - 无法使用点符号快速访问函数成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30055974/

相关文章:

javascript - 在 JavaScript 中对同一个变量调用多个函数

ios - NSDictionary 填充 JSON 数据

ios - 如何从 vImage_Buffer 到 CVPixelBufferRef

ios - 混合 xib 的 UITableViewCell 和以编程方式生成的 UITableViewCells

ios - 使用 Alamofire 和 MultiFormData 上传图像

ios - 在 Swift 中从不同的 ViewController 获取数据

ios - 使用 Swift 和 xCode9 beta4 创建静态库

swift - 如何以编程方式将 9 个偶数图像添加到 View |Swift

Javascript:将数组元素的地址传递给函数

java - AntLR4 : Build A function