相关疑难解决方法(0)

类型“()”不能符合“View”

我正在努力在视图中输出随机字符串。

由于错误:

类型 '()' 不能符合 'View

我了解到 View 不是写下函数本身的合适位置。

我应该怎么做才能输出itemX.randomElement()itemY.randomElement()

struct SummaryView: View {
    var avgValue = 1.5
    var roundedKarvonenValue: Double
    var itemX = ["A", "B", "C", "D", "E", "F", "G", "H"]
    var itemY = ["I", "J", "K", "L", "M", "N", "O", "P"]

    var body: some View {
        ScrollView {
            VStack(alignment: .leading) {
                if workoutManager.averageHeartRate < roundedKarvonenValue {
                    print(itemX.randomElement()!)
                } else {
                    print(itemY.randomElement()!)
                }
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

view swift watchos swiftui

27
推荐指数
2
解决办法
4万
查看次数

如何在SwiftUI中将print()打印到Xcode控制台?

因此,我尝试在SwiftUI视图中调试时放入一条打印语句。

    print("landmark: \(landmark)")
Run Code Online (Sandbox Code Playgroud)

在下面的身体。

    var body: some View {
    NavigationView {
        List {
            Toggle(isOn: $userData.showFavoritesOnly) {
                Text("Favorite only")
            }
            ForEach(landmarkData) { landmark in
                print("landmark: \(landmark)")
                if !self.userData.showFavoritesOnly || landmark.isFavorite {
                    NavigationButton(destination: LandmarkDetail(landmark: landmark)) {
                        LandmarkRow(landmark: landmark)
                    }
                }
            }
        }.navigationBarTitle(Text("Landmarks"))

    }
}
Run Code Online (Sandbox Code Playgroud)

编译错误出: 在此处输入图片说明

那么,在SwiftUI中打印到控制台的正确方法是什么?

编辑:我使Landmark符合CustomStringConvertible

struct Landmark: Hashable, Codable, Identifiable, CustomStringConvertible {

var description: String { name+"\(id)" }

var id: Int
var name: String
.....
Run Code Online (Sandbox Code Playgroud)

我仍然收到“字符串不可转换为任何字符串”的错误。现在应该工作吗?

swiftui

8
推荐指数
7
解决办法
1978
查看次数

无法在 Xcode 中打印到控制台

我是 Xcode、macOS 开发等方面的新手。所以也许只是因为我是新手 - 但我无法尽全力制作一个简单的打印输出来控制台工作。

我为我的问题创建了一个最小的非工作示例:

import SwiftUI

struct Test: View {
    @State var message = "Test"
    var body: some View {
        Button(action: {
            print("test worked")
            message = "test worked"
       }) {
            Text(message)
       }
    }
}

struct Test_Previews: PreviewProvider {
    static var previews: some View {
        Test()
    }
}
Run Code Online (Sandbox Code Playgroud)

执行此操作时,按钮文本会发生变化,但控制台中不会出现任何内容。

我尝试按照本教程进行操作,但它也不起作用:https ://www.hackingwithswift.com/read/18/2/basic-swift-debugging-using-print

我尝试根据此线程启用调试预览:How to print() to Xcode console in SwiftUI?

我尝试启用此设置:在此输入图像描述

没有什么帮助..我正在使用 Xcode 版本 12.1 (12A7403) 顺便说一句。

xcode ios swift swiftui

4
推荐指数
1
解决办法
8219
查看次数

标签 统计

swiftui ×3

swift ×2

ios ×1

view ×1

watchos ×1

xcode ×1