Ios 无法强制转换类型为';TableViewController';至';NSString';
我在下面代码的第四行中遇到以下错误 线程1:信号SIGABRT,输出表示无法将“JobTableViewController”(0x10a20cb80)类型的值强制转换为“NSString”(0x10cc5a2a8) Job.swift:Ios 无法强制转换类型为';TableViewController';至';NSString';,ios,swift,uitableview,nsstring,segue,Ios,Swift,Uitableview,Nsstring,Segue,我在下面代码的第四行中遇到以下错误 线程1:信号SIGABRT,输出表示无法将“JobTableViewController”(0x10a20cb80)类型的值强制转换为“NSString”(0x10cc5a2a8) Job.swift: class Job { var text: String = "" let ref: DatabaseReference! init(text: String) { self.text = text ref = Database.databa
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,
]
}
}
您的问题是,在
performsgue
中,您将self
(类型为JobTableViewController
)作为sender
参数发送,如下所示
self.performSegue(withIdentifier: "toDetails", sender: self)
在这里把它扔给
sender as! String
所以把它转换成
self.performSegue(withIdentifier: "toDetails", sender:"sendedStr")
对不起,我不知道我是否理解你的意思。。。我现在需要更改什么?你的意思是“sentStr”或“senderStr”,拼写错误?他指的是你发送的字符串,所以在我的例子中是“valueToPass”,哦,它起作用了,谢谢:)@Carpsen90正如joe所说的=完成更多问题:当我的发件人只是valueToPass,没有“”时,我会得到相同的错误,只是为了文件作业。swift,而不是JobTableViewController。。。我哪里做错了什么?执行此序列的视图控制器的类是什么?您希望传递的值是多少?
self.performSegue(withIdentifier: "toDetails", sender:"sendedStr")