Core data 在prepareForSegue方法中传递委托

Core data 在prepareForSegue方法中传递委托,core-data,delegates,Core Data,Delegates,我在IOS应用程序中将对象从TableView传递到ViewController时遇到问题。我正在使用故事板,并在“prepareForSegue”方法中选择了ARC并通过了代理 以下是我在TableView中的代码,它通过推送到另一个ViewController进行分段: - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { NextViewController *vc = (NextViewCo

我在IOS应用程序中将对象从TableView传递到ViewController时遇到问题。我正在使用故事板,并在“prepareForSegue”方法中选择了ARC并通过了代理

以下是我在TableView中的代码,它通过推送到另一个ViewController进行分段:

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {

    NextViewController *vc = (NextViewController *)[segue destinationViewController];

    vc.managedObjectContext = managedObjectContext;

    if ([[segue identifier] isEqualToString:@"EditCategory"])
    {

    NSInteger selectedIndex = [[self.tableView indexPathForSelectedRow] row];

    //  I get a red warning which states "Cast of 'NSInteger' (aka 'int') to 'Entity' is disallowed with ARC" on this line:
    [vc setEntity:(Entity *)selectedIndex];
    }
}

有人对如何将对象从TableView传递到ViewController有什么建议吗?我是编程新手,曾尝试过各种表达式,但似乎都不起作用。

您遇到的错误与类型有关

NextViewController
显然有一个名为
-setEntity:
的方法,该方法接受类型为
Entity*
的对象。错误是因为您试图为
-setEntity:
提供错误类型的参数。您试图给它一个
NSInteger
(类似于0、5、-999的数字),但它需要一个
实体

将数据从表视图传递到
NextViewController
是正确的。您只需执行以下操作之一:

  • 实体
    传递给
    -setEntity:
    (是否
    实体
    类 有一个构造函数,它接受一个
    NSInteger
    ?)
  • NextViewController
    添加一个方法,该方法接受一个
    NSInteger
    ,并调用该方法而不是
    -setEntity:

感谢您为我指明了正确的方向。我一直在尝试实现协议/委托方法,但我的managedObject出现了“null”。我想我很难确定哪个视图控制器实际上正在传递managedObject。ViewController上选择器的结果仅显示在TableViewController上。我是否只需要将managedObject从ViewController单向传递到TableViewController?或者我需要在两个方向上传递managedObject吗?