Не удалось привести значение типа TableViewController к NSString - PullRequest
0 голосов
/ 28 августа 2018

Я получаю следующую ошибку в четвертой строке кода ниже ...

Поток 1: сигнал SIGABRT , и на выходе отображается Не удалось преобразовать значение типа 'JobTableViewController' (0x10a20cb80) в 'NSString' (0x10cc5a2a8).

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
    if segue.identifier == "toDetails" {
        let detailController = segue.destination as! JobDetailViewController
        detailController.valueToPass = sender as! String
    }
}

Job.swift:

class Job {
var text: String = ""
let ref: DatabaseReference!

init(text: String) {
    self.text = text
    ref = Database.database().reference().child("jobs").childByAutoId()
}

init(snapshot: DataSnapshot)
{
    ref = snapshot.ref
    if let value = snapshot.value as? [String : Any] {
        text = value["text"] as! String
    }
}

func save() {
    ref.setValue(toDictionary())
}

func toDictionary() -> [String : Any]
{
    return [
        "text" : text,
    ]
}
}

1 Ответ

0 голосов
/ 28 августа 2018

Ваша проблема в том, что в performSegue вы отправляете self (который имеет тип JobTableViewController) как sender параметр, подобный этому

self.performSegue(withIdentifier: "toDetails", sender: self)

и здесь приведите его к

sender as! String

, поэтому конвертируйте его в

self.performSegue(withIdentifier: "toDetails", sender:"sendedStr")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...