我正在创建一个CoreData
项目。我使用了XCode6(beta 5)中的Master / Detail模板。我过去几天研究了它,并且我对它使用的anyObject?
感到困惑。我正在传递一个事件。正如我对Objective-C所做的那样,我想用Event.eventName
代替detail.valueForKey("eventName").description
我尝试了很多尝试,现在我有了一些有效的方法。但它运作正常吗?有没有办法以比我更好(或更有效)的方式将事件(对象)传递给DetailViewController?
import UIKit
class DetailViewController: UIViewController
{
@IBOutlet var textFieldEventName: UITextField!
@IBOutlet var textFieldStartDate: UITextField!
@IBOutlet var textFieldEndDate: UITextField!
@IBOutlet var labelNumberOfDays: UILabel!
var currentEvent: Event!
required init(coder aDecoder: NSCoder!)
{
super.init(coder: aDecoder)
}
override func viewDidLoad()
{
super.viewDidLoad()
updateDisplay()
}
func updateDisplay()
{
if let textField = self.textFieldEventName
{
textFieldEventName.text = currentEvent.eventName
textFieldStartDate.text = currentEvent.startDate
textFieldEndDate.text = currentEvent.endDate
labelNumberOfDays.text = "\(currentEvent.orderNumber)"
}
}
}
答案 0 :(得分:0)
请参阅Type Casting for Any and AnyObject上的相关Swift文档位。在您的情况下,这是一个选项:
let detail: Event = self.detailItem as Event
这非常基本,你应该在编写代码之前阅读一下Swift书。