gpt4 book ai didi

ios - Swift 包中 SwiftUI 热重载的 "noWorkspaceArena"错误

转载 作者:行者123 更新时间:2023-12-01 15:57:08 24 4
gpt4 key购买 nike

我正在尝试构建一个利用 SwiftUI 创建图表数据可视化的 Swift 包。我的理解是,在开发过程中,我可以在 Xcode 中使用 SwiftUI 的热重载来预览包中的组件,但是当我尝试恢复预览时,出现错误“无法在此文件中预览 -发生意外错误”诊断显示以下错误。

错误:

UVKit.XcodeWorkspaceBuildEnvironment.(unknown context at $141a48360).(unknown context at $141a48368).ValidationError.noWorkspaceArena)


GenericHumanReadableError: unexpected error occurred

noWorkspaceArena

这就是我的观点。

PieChartView.swift:

import SwiftUI

public struct PieChartView : View {
public var data: [(Double, Color)]
public var title: String

public init(data: [(Double, Color)], title: String) {
self.data = data
self.title = title
}

public var body: some View {
Text(title)
}

}

#if DEBUG
struct PieChartView_Previews : PreviewProvider {
static var previews: some View {
PieChartView(data:[(56.0, Color.red),(78, Color.blue),(53, Color.green)], title: "Title")
}
}
#endif

这是我的包裹

包.swift:

import PackageDescription

let package = Package(
name: "MesmerCharts",
platforms: [
.iOS(.v13)
],
products: [
// Products define the executables and libraries produced by a package, and make them visible to other packages.
.library(
name: "MesmerCharts",
targets: ["MesmerCharts"]),
],
dependencies: [
// Dependencies declare other packages that this package depends on.
// .package(url: /* package url */, from: "1.0.0"),
],
targets: [
// Targets are the basic building blocks of a package. A target can define a module or a test suite.
// Targets can depend on other targets in this package, and on products in packages which this package depends on.
.target(
name: "MesmerCharts",
dependencies: []),
.testTarget(
name: "MesmerChartsTests",
dependencies: ["MesmerCharts"]),
]
)

最佳答案

为了解决我的问题,我创建了一个 .xcworkspace 来包含我的“测试应用程序”和我的 Swift 包。为此,您可以执行以下步骤:

  1. 创建一个新工作区并在 Xcode 中打开它。
  2. 在工作区中,通过转到"file">“新建”>“项目...”创建一个新项目。
  3. 创建一个单 View 应用程序并将其添加到您创建的工作区。
  4. 将测试应用程序添加到您的工作区后,您将需要添加 Swift 包,您可以通过转到"file">“新建”>“Swift 包”来完成此操作...
  5. 再次将 Swift 包添加到您创建的工作区,就像您在第 3 步中对测试应用程序所做的那样。
  6. 您现在将在您的工作区中看到应用程序和包,但是我们仍然需要修改应用程序的 .xcodeproj 以使用该包。

enter image description here .

  1. 为此,选择您的应用程序,在“常规”选项卡的目标下,您将看到“框架”、“库”和“嵌入式内容”,单击“+”符号,系统将提示您提供可以添加到项目中的框架和库,选择您的 Swift 包。

enter image description here

  1. 您现在会看到 Swift 包作为添加的库。

enter image description here

旁注

每当更新 Swift 包时,您都需要先重建它,然后才能在测试应用程序中使用它。

关于ios - Swift 包中 SwiftUI 热重载的 "noWorkspaceArena"错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60722435/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com