[英]Swift - CoreData - DetailViewController - passing an object
I'm creating a CoreData
project. 我正在创建一个
CoreData
项目。 I used the Master / Detail template from XCode6 (beta 5). 我使用了XCode6(测试版5)中的Master / Detail模板。 I've studied it for the past few days, and I'm confused on the
anyObject?
我已经研究了几天,对
anyObject?
感到困惑anyObject?
that it uses. 它使用的。 I am passing it an Event.
我通过了一个活动。 As I did with Objective-C, I'd like to use
Event.eventName
in lieu of detail.valueForKey("eventName").description
正如我对Objective-C所做的那样,我想使用
Event.eventName
代替detail.valueForKey("eventName").description
I have tried numerous attempts and I now have something that works. 我已经尝试了无数次尝试,现在有了一些可行的方法。 But does it work properly?
但是它能正常工作吗? Is there a way to pass an Event (object) to the DetailViewController in a better (or more efficient) way than what I have?
有没有一种方法可以比我现有的方法更好(或更有效)地将事件(对象)传递给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)"
}
}
}
Please see the relevant Swift documentation bit on Type Casting for Any and AnyObject . 请参阅有关Any和AnyObject的类型转换的有关Swift文档的内容 。 In your case, here is one option:
就您而言,这是一种选择:
let detail: Event = self.detailItem as Event
This is really extremely basic and you should read the Swift book a bit more before coding by example. 这确实是非常基础的,在通过示例进行编码之前,您应该多读Swift书。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.