Тип структуры не виден в ContentView - PullRequest
0 голосов
/ 11 апреля 2020

У меня есть проект со следующей структурой:

KittenBase
  Resources
    kittens.json
  Models
    Kitten.swift
    Data.swift
  AppDelegate.swift
  SceneDelegate.swift
  ContentView.swift

и ContentView.swift выглядит так:

import SwiftUI

struct ContentView: View {
    var kitten : Kitten
    var body: some View {
        Text("Hello, World!")
    }
}

struct ContentView_Previews: PreviewProvider {
    static var previews: some View {
        ContentView(kitten : kittenData[0])
    }
}

Но проблема в том, что компилятор говорит, что Kitten является неразрешенным типом и что kittenData является неразрешенной переменной. Вот содержимое Data.swift, где я создаю массив kittenData:

let kittenData: [Kitten] = load("kittens.json")
func load<T: Decodable>(_ filename: String) -> T {
    let data: Data

    guard let file = Bundle.main.url(forResource: filename, withExtension: nil)
        else {
            fatalError("Couldn't find \(filename) in main bundle.")
    }

    do {
        data = try Data(contentsOf: file)
    } catch {
        fatalError("Couldn't load \(filename) from main bundle:\n\(error)")
    }

    do {
        let decoder = JSONDecoder()
        return try decoder.decode(T.self, from: data)
    } catch {
        fatalError("Couldn't parse \(filename) as \(T.self):\n\(error)")
    }
}

Почему я не могу получить доступ к типу Kitten и переменной kittenData? Еще более интересно, если я скопирую структуру Kitten в ContentView, компилятор скажет мне, что это неоднозначная ссылка, означающая, что она определенно ЗНАЕТ, что Kitten.swift существует?

1 Ответ

0 голосов
/ 12 апреля 2020

Это оказалось ошибкой в ​​XCode11, которая была исправлена ​​при перезагрузке компьютера.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...