Determinar si UITableView tiene celdas estáticas o prototypes dynamics programáticamente?

Estoy escribiendo una class abstracta UITableViewController y me gustaría escribir algo en viewDidLoad como

 if (self.tableView.contentType == UITableViewContentTypeStaticCells) { // Do something when table view has static cells } else { // Do something when table view has dynamic prototypes } 

Pero, obviamente, no hay contentType en UITableView. ¿Hay alguna manera de determinar programáticamente si el contenido de la tabla gráfica de tableView es estático o dynamic?

No hay una forma de distinguir entre los dos, pero si eres más específico sobre lo que estás tratando de lograr, podemos sugerir forms alternativas de lograr tu objective.

Solo para los curiosos: [tableViewController valueForKey: @"staticDataSource"] llevará allí, donde tableViewController es un UITableViewController.

PERO (!) Esto podría no pasar la AppStore y puede romperse sin previo aviso, ya que no se publica API.

Actualización: parece que si se comtesting, si

 self == self.tableView.dataSource 

mientras que self es un UITableViewController también le da el resultado solicitado nuevamente.

mi solución asume que la class abstracta UITableViewController debe exponer una propiedad BOOL

 @property (assign, nonatomic) BOOL staticCells; 

esta propiedad es valorizada por las classs concretas, y la implementación de los methods de origen de datos comtesting la condición de existencia de la propiedad como en este caso:

 - (UITableViewCell*) tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { if (!self.staticCells) { ... } else{ UITableViewCell* cell = [super tableView:tableView cellForRowAtIndexPath:indexPath]; [cell layoutIfNeeded]; return cell; } } 

Supongo que estabas buscando una propiedad de marco de sistema (o método de delegado) para verificar el comportamiento estático, pero tal vez esta solución puede ser útil para alguien