我在将对象从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?我是编程新手,尝试了各种表达方式,但似乎没什么用。
答案 0 :(得分:1)
您获得的错误与类型有关。
类NextViewController
显然有一个名为-setEntity:
的方法,它接受类型为Entity *
的对象。错误是因为您试图给-setEntity:
一个错误类型的参数。你试图给它一个NSInteger
(这是一个像0,5,-999这样的数字),但它需要一个Entity
。
您正在将数据从表格视图传递到NextViewController
。您只需要执行以下操作之一:
Entity
传递给-setEntity:
(也许是Entity
课程
有一个带NSInteger
?)NextViewController
的方法,然后调用该方法而不是NSInteger