0

目标:使用 SwiftUI .fileImporter 修饰符加载 USD 文件。

根据 Apple 文档,USD 是带有 .fileImporter 修饰符的受支持的 uttype。 https://developer.apple.com/documentation/uniformtypeidentifiers/uttypehttps://developer.apple.com/documentation/uniformtypeidentifiers/uttype/3551587-usd

我尝试了下面的代码,但它不起作用。有人设法让这个工作吗?

import SwiftUI

struct ContentView: View {
    
    @State var openFile = false
    @State var usdFile = Data()

    @State var fileName = ""

    
    var body: some View {
    

        Form {
            
            //import USD
            Button(action: {
                self.openFile.toggle()
            }){
                
                Text(fileName)
            
            }
            


        }
        
        .navigationTitle("File Importer")


        //file importer
        .fileImporter(isPresented: $openFile, allowedContentTypes: [.usd]) { (res) in
            

            
            do{
                let fileUrl = try res.get()
                print(fileUrl)
                
                self.fileName = fileUrl.lastPathComponent
                print(fileName)

                
                if let usdFile = try? Data(contentsOf: fileUrl),
           
                fileUrl.stopAccessingSecurityScopedResource()
                
            } catch{
                
                print ("error reading")
                print (error.localizedDescription)
            }
            
        }
        
    }
}

4

0 回答 0