cuốn sách gpt4 ai đã làm

swift - UIHostingController 抛出

In lại Tác giả: Walker 123 更新时间:2023-11-28 07:18:27 28 4
mua khóa gpt4 Nike

我想从 UIViewController 加载一个基于 SwiftUI 的 View ,该 View 读取包本地的 json。仅 swiftUI 项目中的代码和绑定(bind)工作正常,当我利用 UIHostingController 时出现错误,我正在寻求帮助修复。

class ProgramsListVCHost : UIHostingController, Storyboarded {
weak var coordinator: MainCoordinator?

required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder, rootView: ProgramsList())

}
}

上面的代码崩溃了,因为我没有传递我应该导致模型初始化的东西。

super.init(coder: aDecoder, rootView: ProgramsList().environmentObject(ProgramUserData()))

但是,如果我这样做,编译器要求我将整个东西转换为底层类 ProgramList(无法将类型“some View”的值转换为预期的参数类型“ProgramsList”)

如果我确实应用了建议的修复,代码会崩溃并出现以下错误:

Could not cast value of type 'SwiftUI.ModifiedContent>>' (0x7fff89d0ec68) to 'bikeit.ProgramsList' (0x110477328). 2019-11-15 14:36:26.049041-0500 bikeit[13658:8386085] Could not cast value of type 'SwiftUI.ModifiedContent>>' (0x7fff89d0ec68) to 'bikeit.ProgramsList' (0x110477328). (lldb)

我不明白如何初始化我必须传递的对象才能使其工作。

câu trả lời hay nhất

当然是因为你声明的内容UIHostingControllerĐúngProgramsList , 所以它在初始化程序中是预期的,但是你传递给它输出 .environmentObject ,Ngay lập tức SwiftUI.ModifiedContent ,所以类型检查失败,你会得到编译器错误。

不清楚您的需求,但可能的解决方案如下:

class ProgramsListVCHost : UIHostingController, Storyboarded {
weak var coordinator: MainCoordinator?

required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder, rootView: AnyView(ProgramsList().environmentObject(ProgramUserData())))
}
}

gia hạn:找到备用

class ProgramsListVCHost : UIHostingController, Storyboarded {

// Internal view
struct MyView: View {
var body: some View {
ProgramsList().environmentObject(ProgramUserData())
}
}

weak var coordinator: MainCoordinator?

required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder, rootView: MyView())
}
}

关于swift - UIHostingController 抛出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58885750/

28 4 0
Đề xuất bài viết: Javascript Jquery 幻灯片
Đề xuất bài viết: ios - 在 json 中返回的错误解码数组 - swift
Đề xuất bài viết: ios - 如何获得准确的电池电量?
Đề xuất bài viết: ios - iPhone : convert GMT to local time
Walker 123
Hồ sơ

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá taxi Didi miễn phí
Phiếu giảm giá taxi Didi
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress