Я предполагаю, что ваш пример кода находится внутри этого метода:
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
Если нет, то это ваша первая проблема.
В данный момент вы, вероятно, последовательно устанавливаете каждую ячейку так, чтобы заголовок каждый выводился один за другим, пока он не достигнет конца списка. Все ячейки имеют одинаковый заголовок, поскольку все они имеют последний заголовок в списке.
Вы должны отбросить цикл for и использовать это вместо:
NSDictionary *object = [objects objectAtIndex:[indexPath row]];
NSString *title = [object objectForKey:@"title"];
NSString *date = [object objectForKey:@"publishedDate"];
cell.textLabel.text = title;
cell.detailTextLabel.text = date;