SwiftUI 使用Bundle讀取已預先在Project中檔案的方法
xcode 13.4.1, swift 5.5, iOS 15.4
2022-09-06
在 iOS 中每個 App 中有個sandbox機制來保存和讀取檔案,以避免存取到其他App的內容,有時會想讀取Project中已預先放置的檔案,這時就可以使用Bundle來定位Project中的目錄位置和存取檔案。
1. 使用Bundle.main.path(forResource: ofType:)可以定位到Project中的目錄位置和存取檔案,只要給出檔案名稱和擴展名就可以。以下例如為了演示要讀取Project中的File.data:
import SwiftUI
struct BundleExample: View {
@State var data = "No Data"
var body: some View {
Text(data)
.onAppear {
guard let path = Bundle.main.path(forResource: "File", ofType: "data") else {
return
}
do {
data = try String(contentsOfFile: path, encoding: .utf8)
} catch let error {
print(error)
}
}
}
}