The Util Designer
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)
                }
            }
        
    }
}