2010-05-10 81 views
0

我想使用CoreData來填充一個UITableView。我一直在使用開發人員「位置」項目,並且我認爲我擁有一切正確。但是,現在我在構建時出現以下錯誤:iPhone核心數據:請求成員'tableView'在某些不是結構或工會

request for member 'tableView' in something not a structure or union 

爲什麼會對tableView感到困惑?我在這些方法中使用了很多次。錯誤似乎來自:

[self.tableView insertRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationFade]; 
[self.tableView scrollToRowAtIndexPath:[NSIndexPath indexPathForRow:0 inSection:0] atScrollPosition:UITableViewScrollPositionTop animated:YES]; 

想法?

回答

0

你確定你是正確繼承UITableViewController?如,

@interface MyTableViewController : UITableViewController {} 

編輯:作爲羅布Lourens說,你的問題是,你繼承UIViewController代替UITableViewControllerUIViewController有一個通用的view屬性,但沒有表格視圖 - 用於任何不需要管理表格視圖的情況,並且在任何情況下使用UITableViewController

+0

它看起來對我來說。 @interface MyRidesViewController:UIViewController {} – 2010-05-10 02:56:24

+1

您需要繼承UITableViewController而不是UIViewController。 – 2010-05-10 05:08:05

0

什麼是self,您爲什麼需要在那裏使用它?

如果您在名爲tableView的成員的課程中,可能是您需要使用self訪問該課程的唯一時間是您創建該課程時允許@property (retain)生效。確保明確地訪問會員並不是一個壞主意。

(編輯爲埃曼 - !沒有後顧之憂)

+0

'self.tableView'僅僅意味着您正在使用訪問者,而不是直接訪問伊娃。當你訪問一個你不能控制的超類屬性時,總是使用訪問器是一種很好的做法,特別是(在這種情況下)。 – shosti 2010-05-10 02:24:33

+0

對不起,我可能誤解了你的答案(如果你編輯它,我會解除它)。不過,在這種情況下使用訪問器幾乎肯定是一個好主意。 – shosti 2010-05-10 02:36:59

1

當您在不太清楚的情況下使用點語法時,會出現該錯誤。

首先,我會嘗試將其更改爲[self tableView]並查看問題是否消失。

至於爲什麼它只出現在這種方法中,需要顯示更多代碼來縮小特定問題的範圍。

相關問題