gpt4 book ai didi

ios - 如何修复 Swift Playground 中的 'Couldn' t 查找符号错误

转载 作者:可可西里 更新时间:2023-11-01 03:29:49 25 4
gpt4 key购买 nike

我有一个带有动态框架(称为“VisualKit”)和导入 VisualKit 的 Playground 的 Xcode 工作区。

当 VisualKit 没有自己的外部依赖项时(即当 VisualKit 不依赖于任何额外的动态框架时),此设置工作正常。

但是,当我添加一个动态框架时(在本例中我正在导入 SnapKit,尽管它是什么框架并不重要),我收到以下错误:

error: Couldn't lookup symbols:
VisualKit.ItemsLabel.__allocating_init() -> VisualKit.ItemsLabel
type metadata accessor for VisualKit.ItemsLabel

我试过以下方法:- 清理项目,删除导入语句,然后将其放回去并尝试重建 Playground - 删除派生数据- 从头开始​​重新创建工作区/ Playground /框架项目

...一切都无济于事。

我的 Playground :

import UIKit
import PlaygroundSupport
import VisualKit

class MyViewController: UIViewController {
override func loadView() {
let view = UIView()
view.backgroundColor = UIColor.red

let label = ItemsLabel()
label.frame = CGRect(x: 150, y: 200, width: 200, height: 20)
label.text = "Hello"

view.addSubview(label)
self.view = view
}
}

PlaygroundPage.current.liveView = MyViewController()

ItemsLabel(在 VisualKit 动态框架项目中):

import UIKit
import SnapKit

public class ItemsLabel: UILabel {
public init() {
super.init(frame: .zero)
}

required public init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
}

我希望 playground 在有 SnapKit 导入(在 VisualKit 中)时与没有导入时一样工作。

有什么想法吗?

最佳答案

经过许多艰苦的时间解决这个问题,我设法解决了它:

  1. 在 Xcode 中,在项目导航器中选择您的框架项目。

  2. 导航到 Build Phases 选项卡。

  3. 添加一个复制文件阶段(通过点击+按钮),并从下拉选择器中选择Frameworks

  4. 将您的框架中使用的所有 carthage 框架添加到复制文件阶段。

然后清理并重建您的框架,现在 playground 应该可以按预期工作。

请注意,此答案仅在您使用 Carthage 构建框架项目中使用的第 3 方框架时才适用。

关于ios - 如何修复 Swift Playground 中的 'Couldn' t 查找符号错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54279364/

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