SwiftUI - создание ошибки класса: аргумент, переданный в вызов, который не принимает аргументов - PullRequest
0 голосов
/ 07 марта 2020

Я новичок в Swift и пытаюсь создать простой класс Cat.swift, а затем передать класс в мой файл SceneDelegate, который затем передает его в мой файл ContentView.

однако я получаю сообщение об ошибке «Аргумент передан в вызов без аргументов», и сборка продолжает давать сбой.

Я также прикреплю изображения для ясности SceneDelegate.swift Cat.swift ContentView.swift

Код Cat.swift

class Cat {
    var breed: String = ""
    var personality: String = ""
    var colour: String = ""
    var characterisitics: String = ""

    init(bre: String, pers: String, col: String, chars: String) {
        breed = bre
        personality = pers
        colour = col
        characterisitics = chars
    }
}

Код SceneDelegate.swift

class SceneDelegate: UIResponder, UIWindowSceneDelegate {

    var window: UIWindow?

    let cat = Cat(bre: "ooo", pers: "ppp", col: "ppp", chars: "ppp")

    func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) {
        let contentView = ContentView(cat: cat)
        if let windowScene = scene as? UIWindowScene {
            let window = UIWindow(windowScene: windowScene)
            window.rootViewController = UIHostingController(rootView: contentView)
            self.window = window
            window.makeKeyAndVisible()
        }
    }

Файл ContentView.swift

import SwiftUI

struct ContentView: View {
    var body: some View {
        Text("bugggggy\(cat.bre)")
        }
    }


struct ContentView_Previews: PreviewProvider {
    static var previews: some View {
        ContentView(cat: Cat(bre: "p", pers: "p", col: "p", chars: "p"))
    }
}

1 Ответ

0 голосов
/ 07 марта 2020

Это потому, что нет конструктора с аргументом cat ContentView, поэтому Xcode напоминает вам об этом.

приведенный ниже код может решить вашу проблему, но не уверен, что это то, что вы ожидали.

struct ContentView: View {

    private var cat: Cat

    init(cat: Cat) {
        self.cat = cat
    }

    var body: some View {
        Text("Hello, World!")
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...