Xcode Playground 中的 SwiftUI 列表

Posted

技术标签:

【中文标题】Xcode Playground 中的 SwiftUI 列表【英文标题】:SwiftUI lists in Xcode Playground 【发布时间】:2020-02-14 15:01:50 【问题描述】:

我正在尝试在 Xcode 操场上学习 SwiftUI。我试图制作一个简单的列表(应该很容易吧?),但 Xcode 在 ios 项目中运行时会导致 Playground 崩溃。

这是我的代码:

import UIKit
import PlaygroundSupport
import SwiftUI

struct ContentView: View 
    var body: some View 
        List(0..<5)  item in
            Text("Test")
        
    


let viewController = UIHostingController(rootView: ContentView())

PlaygroundPage.current.liveView = viewController

【问题讨论】:

这是 Xcode 11.3 问题。经过测试并在 Xcode 11.2 上运行良好。对于 SwiftUI,最好使用 Xcode 内部 Preview,这在 Playground 中不可用。它更实用、更方便(和生活)。只需从模板创建基于 SwiftUI 的项目。 【参考方案1】:

无法解决问题,但无论如何您绝对应该检查 swift playground,它们很棒 https://www.apple.com/swift/playgrounds/ :)

【讨论】:

【参考方案2】:

这可能是 Xcode 12.5 中的一个错误,但在 Xcode 13.0 Beta 中一切正常

另外,在 SwfitUI 中,您可以使用 PlaygroundPage.current.setLiveView 而不是创建主机控制器。

import SwiftUI
import PlaygroundSupport

struct ContentView: View 
    var body: some View 
        List(1..<5) 
            Text("Item \($0)")
        
    


PlaygroundPage.current.setLiveView(ContentView())

这就是它的样子:

【讨论】:

这对我不起作用(Xcode 12.5),错误:“错误:执行被中断,原因:信号 SIGABRT。进程已留在中断点,使用“线程返回-x" 返回表达式求值前的状态。"

以上是关于Xcode Playground 中的 SwiftUI 列表的主要内容,如果未能解决你的问题,请参考以下文章

Xcode 6 Beta / Swift - Playground 未更新

Swift 2.0 代码在 Xcode 中有效,但在 Playground 中无效

swift 来自Xcode Playground的文件处理

Xcode Playground 因非 Swift 代码而崩溃

NSDate() - Playground 与 Swift Xcode

Swift Playground 4:导入 Swift 包