首页 > 解决方案 > iOS 14.0 之后如何解决 SwiftUI 中 RealmSwift.App 和 SwiftUI.App 的冲突?

问题描述

不能App直接用,也不能用RealmSwift.App。我该怎么做才能解决冲突?</p>

在此处输入图像描述

在此处输入图像描述

import SwiftUI
import RealmSwift

let app = RealmSwift.App(id: "tasktracker-qczfq")
@main
struct LandManagementApp: SwiftUI.App {
    var body: some Scene {
        WindowGroup {
            ContentView()
        }
    }
}

错误:模块“RealmSwift”没有名为“App”的成员

import SwiftUI
import RealmSwift

let app = App(id: "tasktracker-qczfq")
@main
struct LandManagementApp: SwiftUI.App {
    var body: some Scene {
        WindowGroup {
            ContentView()
        }
    }
}

错误:传递给不带参数的调用的参数错误:无法实例化协议类型“App”

我使用 swift manager 包安装了 Realm,并且没有更改任何构建设置。

标签: swiftuirealmios14

解决方案


在 Swift 代码中使用 RLMApp 是一种反模式,因为它是来自 Obj-C api 的一种类型。区分这两种App类型的方法是为命名空间添加前缀,例如RealmSwift.App,或者添加一个类型别名以帮助清除限定每种类型的一些冗长。

例如typealias RealmApp = RealmSwift.App typealias SwiftApp = SwiftUI.App


推荐阅读