2014-02-09 170 views
0

为什么会收到以下编译器警告:编译器警告在NSManagedObject

Incompatible pointer types sending 'NSManagedObject *' to parameter of type 'ToDoItem *' 

这个方法?:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    NSManagedObject *object = [[self fetchedResultsController] objectAtIndexPath:indexPath]; 
    self.detailViewController.editToDoItem = object; 
} 

的TodoItem是NSManagedObject子类中的最后一行。

回答

1

self.detailViewController.editToDoItem需要一个ToDoItem对象,所以你不能 通过NSManagedObject的对象:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    ToDoItem *object = [[self fetchedResultsController] objectAtIndexPath:indexPath]; 
    self.detailViewController.editToDoItem = object; 
} 
+0

你是对的,但我也应该分配这里的属性值在detailViewController显示,然后现在它打开空值...或者它们是否自动传递包含在ToDoItem *对象中?我猜对象的当前属性值应显示在detailViewController ..但它们不显示.. – mvasco

+1

@mvasco:传递对象到详细视图控制器应该没问题。你是否检查过'self.detailViewController'设置是否正确,而不是'nil'? –

+0

一切工作正常,我应该改变一些代码行详细视图控制器....现在好了,谢谢你一如既往的马丁。 – mvasco