Как исправить ошибку бета-версии Xcode версии 11.0? - PullRequest
1 голос
/ 05 июня 2019

Я слежу за https://developer.apple.com/tutorials/swiftui/tutorials для SwiftUI и скачал бета-версию macOS Catalina и Xcode 11.0.

Canvas упал и не восстанавливается даже послепопробуйте следующее:

  • Я попытался полностью очистить проект - не удалось
  • Я попытался перезапустить Xcode - не удалось
  • Я попытался перезагрузить - не удалось

Код просто объявляет пользовательский интерфейс, ничего особенного.

import SwiftUI

struct LandmarkDetail : View {
    var landmark: Landmark

    var body: some View {
        VStack {
            MapView(coordinate: landmark.locationCoordinate)
                .edgesIgnoringSafeArea(.top)
                .frame(height: 300)

            CircleImage(image: landmark.image(forSize: 250))
                .offset(y: -130.0)
                .padding(.bottom, -130.0)

            VStack(alignment: .leading) {
                Text(landmark.name)
                    .font(.title)
                    .multilineTextAlignment(.center)


                HStack {
                    Text(landmark.park)
                        .font(.subheadline)
                    Spacer()
                    Text(landmark.state)
                        .font(.subheadline)
                }
            }
            .padding()

            Spacer()
        }
        .navigationBarTitle(Text(landmark.name), displayMode: .inline)
    }
}

#if DEBUG
struct ContentView_Previews : PreviewProvider {
    static var previews: some View {
        LandmarkDetail(landmark: landmarkData[0])
    }
}
#endif

Я ожидаю, что холст покажет пользовательский интерфейс, но я получаю ошибку Cannot preview in this file --- MyApp.app may have crashed.

Вот изображение того, как это выглядит:

Canvas crash

Обратите внимание, что все работало нормально до определенной точки.

Заранее спасибо за помощь!

Ответы [ 3 ]

1 голос
/ 05 июня 2019

Я понесла ту же ошибку;Я исправил, загрузив обновленные ресурсы из учебника.По сути, я думаю, что вы добавили isFavorite к модели Landmark, но в JSON это поле отсутствует, поэтому происходит сбой декодирования.Загрузите и замените новый JSON из ресурсов учебника.

Если проблема не в isFavorite, должен отсутствовать другой ресурс, просто обязательно каждый раз загружайте новую модель Landmark и связанные ресурсыВы начинаете новый урок с учебника.

Это ошибка Apple, поскольку они не упомянули, что вам нужно обновить файл JSON, чтобы он соответствовал модели Landmark.

РЕДАКТИРОВАТЬ

Если проблема не устранена, просто добавьте сюда свой json и свою модель Landmark, чтобы мы могли взглянуть на них

0 голосов
/ 21 июня 2019

первый сбой связан с регистром enum Category, который был добавлен в Landmark.swift:

enum Category: String, CaseIterable, Codable, Hashable {
    case featured = "Featured"
    case lakes = "Lakes"
    case rivers = "Rivers"
    case mountains = "Mountains" . // <- added
}

Второй сбой, который следует из-за изменения имени ресурса: если вы не хотите обновлятьресурсы просто переименуйте yukon_charleyrivers.jpg в charleyrivers.jps или просто убедитесь, что он соответствует значению .json "imageName" для словаря Charley Rivers.

{
    "name": "Charley Rivers",
    "category": "Rivers",
    "city": "Eaking",
    "state": "Alaska",
    "id": 1007,
    "isFeatured": true,
    "isFavorite": false,
    "park": "Charley Rivers National Preserve",
    "coordinates": {
        "longitude": -143.122586,
        "latitude": 65.350021
    },
    "imageName": "charleyrivers",  // <- changed from yukon_charleyrivers
}
0 голосов
/ 18 июня 2019

Вышеприведенное верно, однако после обновления JSON, чтобы он соответствовал ресурсам Apple, у меня все еще был сбой. В этом JSON они также являются новой категорией «Горы», вам нужно будет обновить Landmark.swift, чтобы включить и нижеследующий регистр.

enum Category: String, CaseIterable, Codable, Hashable {
        case featured = "Featured"
        case lakes = "Lakes"
        case rivers = "Rivers"
        case mountains = "Mountains"
}

Также убедитесь, что вы включили все изображения в комплекте (прилагается для справки). Я скучал по паре между первыми парами учебников от Apple. Кажется, есть несоответствия в следовании, а не в загрузке ресурсов.

enter image description here

...