2016-12-23 215 views
0

我想播放背景視頻,但我遇到了一行代碼的問題。我得到的,說:「不能調用類型‘URL’沒有安排初始化」在這一行錯誤「開放VAR的contentURL:URL =網址()」播放背景視頻

open class VideoSplashViewController: UIViewController { 

    fileprivate let moviePlayer = AVPlayerViewController() 
    fileprivate var moviePlayerSoundLevel: Float = 1.0 
    open var contentURL: URL = URL() { 
    didSet { 
     setMoviePlayer(contentURL) 
    } 
    } 

    open var videoFrame: CGRect = CGRect() 
    open var startTime: CGFloat = 0.0 
    open var duration: CGFloat = 0.0 
    open var backgroundColor: UIColor = UIColor.black { 
    didSet { 
    view.backgroundColor = backgroundColor 
    } 
} 

我不知道如何解決這個問題,請幫助

回答

1

錯誤消息是不言自明,URL類沒有不帶參數的:)

如果你看一看URL類的初始化 - 按住CMD鍵點擊URL - ,你會發現,有這樣的沒有初始化:

init() {} 

因此,你不能只是寫URL(),因爲需要上述初始化。然而,有一個各種URL類其他初始化,如:

init?(string: String) {} 
init(fileURLWithPath path: String) 
... 

您可以使用其中的任何初始化的contentURL實例。

open var contentURL: URL = URL(string: "") {/**/} 
open var contentURL: URL = URL(fileURLWithPath: "") {/**/} 

What is Initializer?

2

你應該將以下代碼

open var contentURL: URL = URL() { 
didSet { 
    setMoviePlayer(contentURL) 
}} 

與此:

public var contentURL: NSURL = NSURL() { 
didSet { 
    setMoviePlayer(contentURL) 
}} 

這將解決您的問題。

+0

您可以添加一個解釋爲什麼你應該使用第二個代碼塊?這會改善你的答案('這將解決你的問題'不是很有幫助)。 –

+0

因爲我有同樣的問題,我通過替換這個問題來解決我的問題。 –

+0

我的評論意思是,其他用戶很高興知道哪些更改適合您。但是,如果你自己不知道,就很難解釋。 –