Почему происходит сбой команды из-за сигнала: Ошибка сегментации: ошибка 11

Я получаю сообщение "Команда не выполнена из-за сигнала: Ошибка сегментации: 11" Ошибка, и я не могу понять, почему, также мой код периодически становится белым. Вот мой код В моем проекте я вызываю API, который работает просто отлично, и я передаю эту информацию json в базу данных, и контроллер представления затем использует эту информацию из хранилища данных для заполнения представления коллекции.

import Foundation

class MovieDataBase
{
    static let sharedInstance = MovieDataBase()
    private init() {}
    //creating a singleton for the MovieDataStore

    var movies = [Movie]()
    //array to store all the movie objects from the json

    let movieSearchTerms = ["love", "fantasy", "romance", "mystery", "thriller", "musical", "family", "horror", "sci-fi"]

    func getMoviesWithCompletion(completion: () -> ()) {

        let randomNum = arc4random_uniform(UInt32(movieSearchTerms.count))

        OMDBAPIClient.getMovieResultsFromSearch(self.movieSearchTerms[Int(randomNum)]) { (arrayOfMovies) in
            for singleMovie in arrayOfMovies
            {

                let neededTitle = singleMovie["title"] as? String
                let neededYear = singleMovie["year"] as? String
                let neededImbdID = singleMovie["imdbID"] as? String
                let neededType = singleMovie["type"] as? String
                let neededPosterURL = singleMovie["posterURL"] as? String

                guard let
                    unwrappedTitle = neededTitle,
                    unwrappedYear = neededType,
                    unwrappedImbdID = neededImbdID,
                    unwrappedType = neededType,
                    unwrappedPosterURL = neededPosterURL

                    else { print("AN ERROR OCCURRED HERE"); return }

                var movie = Movie.init(title: unwrappedTitle, year: singleMovie["year"], imdbID: singleMovie["imbdID"], type: singleMovie["type"], posterURL: singleMovie["posterURL"])

                movies.append(movie)
            }
            completion()
        }

}


}

1 ответ

Причина, по которой это не сработало, заключалась в том, что у меня было неправильное написание информации, которая мне была нужна из JSON, поэтому она выдавала всевозможные ошибки. В следующий раз было бы разумно взглянуть на информацию JSON в почтальоне и убедиться, что код, который вы пишете, соответствует информации, которая вам нужна из JSON, иначе вы столкнетесь со всевозможными ошибками.

Другие вопросы по тегам