型別找不到的 Cannot find xxx in scope 問題

開發 iOS App 時,我們利用各種型別的元件實現五花八門的功能。不過有時卻會出現型別找不到的錯誤,比方下圖找不到 AVPlayer,出現錯誤 Cannot find ‘AVPlayer’ in scope

這類錯誤通常跟忘了 import 定義型別的 framework 有關,在此我們只要 import AVFoundation 即可修正問題。

import SwiftUI
import AVFoundation

struct ContentView: View {

var player = AVPlayer(url: URL(string: "https://audio-ssl.itunes.apple.com/apple-assets-us-std-000001/AudioPreview118/v4/69/0e/98/690e98db-440d-cb0c-2bff-91b00a05bdda/mzaf_1674062311671795807.plus.aac.p.m4a")!)

var body: some View {
Text("play")
.padding()
.onAppear(perform: {
player.play()
})

}
}

不過我們怎麼知道 AVPlayer 來自 framework AVFoundation 呢 ? 以下幾種方法可幫我們找到 AVPlayer 歸屬的 framework。

方法1: Open Quickly

利用 Open Quickly (cmd + shift + 英文的o )搜尋 avplayer,下圖紅色框框標示的 AVFoundation 即為定義 AVPlayer 的 framework。

方法2: 從 Developer Documentation

點選 Xcode menu 的 Help > Developer Documentation。

搜尋 avplayer。

點選下拉箭頭,選擇 Begins With。

找到 AVPlayer,從下圖的紅色框框發現它的 framework 是 AVFoundation。

方法3: google 搜尋

找到 AVPlayer 的官方文件,從下圖的紅色框框發現它的 framework 是 AVFoundation。

--

--

彼得潘的 iOS App Neverland
彼得潘的 Swift iOS App 開發問題解答集

彼得潘的iOS App程式設計入門,文組生的iOS App程式設計入門講師,彼得潘的 Swift 程式設計入門,App程式設計入門作者,http://apppeterpan.strikingly.com