2014-02-09 211 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