型別找不到的 Cannot find xxx in scope 問題
Published in
Nov 11, 2020
開發 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。