如何使用核心NFC和Swift UI连接asyc数据提取?

如何使用核心NFC和Swift UI连接asyc数据提取?,swift,swiftui,combine,core-nfc,Swift,Swiftui,Combine,Core Nfc,我正在尝试为我的SwiftUI屏幕创建一个数据模型。 我面临的问题是,我使用Core NFC扫描NFCTag(执行一些任务),然后我想更新SwiftUI屏幕。数据获取/操作是异步进行的 查看 struct NFCTest: View { @EnvironmentObject var nfcController: NFCController var body: some View { VStack { Button(action: {

我正在尝试为我的SwiftUI屏幕创建一个数据模型。 我面临的问题是,我使用Core NFC扫描NFCTag(执行一些任务),然后我想更新SwiftUI屏幕。数据获取/操作是异步进行的

查看

struct NFCTest: View {

    @EnvironmentObject var nfcController: NFCController


    var body: some View {
        VStack {
            Button(action: {
                self.nfcController.beginScanning()
            }) {
                Text("Button")
            }
NFC控制器

final class NFCController: UIViewController, ObservableObject {

@Published var someObject :ObjectStruct //someObject contains a @Published var someVar    
//Tag detected
    func doSomeAsyncCalls {
    //calling functions in other swift files. runs async on another thread. Should change someVar at the end of the calculation
    }
现在的问题是嵌套的可观察对象在SwiftUI中不起作用。我试图在NFCController中创建一个可观察的var,并在该var中创建了一个已发布的var。但在SwiftUI中没有触发更改

有什么概念可以解决这个异步数据流问题吗?

这里是可能的方法(scratchy)

最终类NFCController:UIViewController,ObserveObject{
@已发布变量someObject:ObjectStruct
func dosomeasync调用{
//…这里还有其他代码
DispatchQueue.global(qos:.background).async{/<模拟异步调用
//…一些计算
DispatchQueue.main.async{
self.someObject.someVar=结果

self.objectWillChange.send()//什么是
ObjectStruct
final class NFCController: UIViewController, ObservableObject {

    @Published var someObject :ObjectStruct

    func doSomeAsyncCalls {

        // .. some other code here
        DispatchQueue.global(qos: .background).async { // < mimic async call
            // .. some calculations

            DispatchQueue.main.async {
                self.someObject.someVar = result
                self.objectWillChange.send()     // << here !!
            }
        }
    }
}