2015-12-03 73 views
0

我有一個PFQueryTableViewController。ios - 解析PFQueryTableViewController numberOfRowsInSection錯誤

它類似於Instagram如何顯示其Feed。

這裏是我的故事板的圖片:

enter image description here

我使用下面的代碼:

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView { 
    return self.objects.count; 
} 

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { 
    return 4; 
} 

因此,對於每個對象,有一個部分。在每個部分他們是四個單元格。這樣我就可以輕鬆地動態調整某些單元格的大小。 (例如,包含對象文本的單元格可根據文本數量動態調整大小)。

的問題是,如果我有從parse檢索少於四個對象,此代碼導致崩潰:

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { 
     return 4; 
    } 

我添加了一個異常斷點,它示出了該方法是負責導致錯誤:

- (PFObject *)objectAtIndexPath:(NSIndexPath *)indexPath { 
    return self.objects[indexPath.row]; 
} 

它特別強調此行會導致錯誤:

return self.objects[indexPath.row]; 

所以,出於某種原因,如果這個方法返回少於四個對象,例如:

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView { 
     return 1; 
    } 

然後我得到上述的錯誤。下面是我的控制檯的圖像:

enter image description here

我hypothesises是,無論這個方法返回:

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section 

用作指標來調用這個方法:

[self.objects objectAtIndex:methodReturnValue]; 

這就是爲什麼如果有少於4個對象,並且numberOfRowsInSection每個部分要求4個單元並且還要求上述方法,那麼顯然我t將通過一個錯誤,因爲它只有一個對象時在索引路徑4處請求一個對象。

我不是如果這是實際的錯誤,但它是我得到的最接近的。

下面是我用我的一些代碼的資源,因爲我在用我的部分PFQueryTableViewControllerParse Sections Post(雖然我結束了剛剛訪問[self.objects objectAtIndex:indexPath.section];

任何幫助將不勝感激!

回答