在Swift中通过协议传递特定的核心数据

时间:2014-11-27 03:09:58

标签: ios swift delegates protocols nsmanagedobject

我正在使用协议和代理从 View Controller 向我的自定义视图控制器发送信息。

ViewController.swift ==

class ViewController: UIViewController, UITableViewDelegate, UITableViewDataSource, UIAlertViewDelegate, StartAlertViewVCDelegate {

func requiredText() -> String { return "test123" }

CustomViewController.swift ==

@objc protocol StartAlertViewVCDelegate {
func requiredText() -> String }

&安培;

func requiredText(info: NSString) { println(info) }

这很好用,但我的问题是我实际上需要从Core Data发送一个项目。此项目是从didSelectRowAtIndexPath .. EX:

中选择的
 func tableView(tableView: UITableView!, didSelectRowAtIndexPath indexPath: NSIndexPath!) {

    println("***** Row \(indexPath.row) selected *****")

    var infoData = [NSManagedObject]()
    let company = infoData[indexPath.row]
    company.valueForKey("openDoor") as String?

    self.selectedOpenDoor = company.valueForKey("openDoor") as String!

我需要将selectedOpenDoor字符串传递给我的自定义视图控制器。 但是当我运行应用程序时,编译器会在将任何内容放入字符串之前抓取selectedDoorOpen(它在启动时运行)

在didSelectRow被触发后,是否有传递委托的内容?

有什么建议吗?

0 个答案:

没有答案