在prepareForSegue方法中传递委托

时间:2012-01-15 21:20:08

标签: core-data delegates

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

这是我的TableView中的代码,它通过push推送到另一个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?我是编程新手,尝试了各种表达方式,但似乎没什么用。

1 个答案:

答案 0 :(得分:1)

您获得的错误与类型有关。

NextViewController显然有一个名为-setEntity:的方法,它接受类型为Entity *的对象。错误是因为您试图给-setEntity:一个错误类型的参数。你试图给它一个NSInteger(这是一个像0,5,-999这样的数字),但它需要一个Entity

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

  • Entity传递给-setEntity:(也许是Entity课程 有一个带NSInteger?)
  • 的构造函数
  • 向[{1}}添加一个NextViewController的方法,然后调用该方法而不是NSInteger
相关问题