发送到新的View Controller的数据为零,展开可选值 [英] Data being sent to new View Controller is nil, unwrapping an Optional Value
本文介绍了发送到新的View Controller的数据为零,展开可选值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
当我尝试将事件
类的详细信息传递给另一个控制器时,我会收到一条错误,说致命错误:意外发现无法解开可选值
。
这是发送信息的视图控制器:
var eventDetailscontrollers:EventDetailsController!
func showDetailView(event:Events){
let mainStoryBoarrd:UIStoryboard = UIStoryboard(name:Main,bundle:nil)
let detailsViewController:UIViewController = mainStoryBoarrd.instantiateViewControllerWithIdentifier eventDetailsID)
eventDetailscontrollers?.event = event //将所有信息发送为nil
eventDetailscontrollers.event = event //这会导致错误
print(event.name) //打印事件名称
self.presentViewController(detailsViewController,动画:true,completion:nil)
}
这是我将数据发送到的类:
var event:活动! {
/ pre>
didSet {
eventPriceLabel.text = event!.date // does nothing
}
}
override func viewDidLoad(){
super.viewDidLoad()
let string = event?.name
print(string)// prints null
}
我的活动类:
类事件:NSObject {
var name:String!
var date:String!
var address:String!
var ticketPrice:Int!
解决方案问题在这里:
func showDetailView(event:Events){
let mainStoryBoarrd:UIStoryboard = UIStoryboard(name:Main,bundle:nil)
let detailsViewController:UIViewController = mainStoryBoarrd.instantiateViewControllerWithIdentifier(eventDetailsID)
eventDetailscontrollers?.event = event //将所有信息发送为nil
eventDetailscontrollers.event =事件//这会导致错误
print(event.name)// this打印事件名称
self.presentViewController(detailsViewController,动画:true,completion:nil)
}
您有两个变量应该相同:
func showDetailView(event:Events){
let mainStoryBoarrd:UIStoryboard = UIStoryboard(name:Main,bundle:nil)
eventDetailscontrollers = mainStoryBoarrd.instantiateViewControllerWithIdentifier( eventDetailsID)
eventDetailscontrollers?.event = event //将所有信息发送为nil
eventDetailscontrollers.event = event //这会导致错误
print(event.name)/ / print打印事件名称
self.presentViewController(eventDetailscontrollers,animated:true,completion:nil)
}
When I try to pass details of my
Event
class to another controller I get an error saying"fatal error: unexpectedly found nil while unwrapping an Optional value"
.This is my view controller that sends the info:
var eventDetailscontrollers: EventDetailsController! func showDetailView(event: Events){ let mainStoryBoarrd: UIStoryboard = UIStoryboard(name:"Main", bundle:nil) let detailsViewController: UIViewController = mainStoryBoarrd.instantiateViewControllerWithIdentifier("eventDetailsID") eventDetailscontrollers?.event = event //this sends all info as nil eventDetailscontrollers.event = event //this causes error print(event.name) // this prints event name fine self.presentViewController(detailsViewController, animated: true, completion: nil) }
This is the class I send the data to:
var event: Events! { didSet { eventPriceLabel.text = event!.date //does nothing } } override func viewDidLoad() { super.viewDidLoad() let string = event?.name print(string)// prints null }
My Events class:
class Events: NSObject { var name: String! var date: String! var address: String! var ticketPrice: Int!
解决方案The issue is here:
func showDetailView(event: Events){ let mainStoryBoarrd: UIStoryboard = UIStoryboard(name:"Main", bundle:nil) let detailsViewController: UIViewController = mainStoryBoarrd.instantiateViewControllerWithIdentifier("eventDetailsID") eventDetailscontrollers?.event = event //this sends all info as nil eventDetailscontrollers.event = event //this causes error print(event.name) // this prints event name fine self.presentViewController(detailsViewController, animated: true, completion: nil) }
You have two variables that should be the same:
func showDetailView(event: Events){ let mainStoryBoarrd: UIStoryboard = UIStoryboard(name:"Main", bundle:nil) eventDetailscontrollers = mainStoryBoarrd.instantiateViewControllerWithIdentifier("eventDetailsID") eventDetailscontrollers?.event = event //this sends all info as nil eventDetailscontrollers.event = event //this causes error print(event.name) // this prints event name fine self.presentViewController(eventDetailscontrollers, animated: true, completion: nil) }
这篇关于发送到新的View Controller的数据为零,展开可选值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文