【发布时间】:2016-06-05 00:05:17
【问题描述】:
有没有办法重构这个函数,让我尽可能少地重复我自己?
我有四个 ViewController,每个都包含一个变量 eventData,这是一个自定义对象。
我想过将eventData 设为全局变量。这样做有什么缺点吗?
这是我现在使用的代码:
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?)
{
navigationItem.title = nil
let segues = UIStoryboardSegue.Segue.self
switch segue.identifier! {
case segues.EventOverviewToGuestList.rawValue:
let destinationVC = segue.destinationViewController as! GuestListVC
destinationVC.eventData = eventData
case segues.EventOverviewToAnalytics.rawValue:
let destinationVC = segue.destinationViewController as! AnalyticsVC
destinationVC.eventData = eventData
case segues.EventOverviewToMessaging.rawValue:
let destinationVC = segue.destinationViewController as! MessagingVC
destinationVC.eventData = eventData
case segues.EventOverviewToInformation.rawValue:
let destinationVC = segue.destinationViewController as! InformationVC
destinationVC.eventData = eventData
default: break
}
}
segues 是enum:
extension UIStoryboardSegue {
enum Segue : String
{
case EventListToEventOverview
case EventOverviewToGuestList
case EventOverviewToAnalytics
case EventOverviewToMessaging
case EventOverviewToInformation
}
}
【问题讨论】:
标签: swift switch-statement refactoring global-variables