Я не обесцениваю асинхронные вызовы делегата, но я обычно заканчиваю тем, что использовал потоковый класс рабочего с синхронными запросами. Я нахожу, что легче в конечном счете иметь четко определенный, потоковый API, вместо того, чтобы заполнить Ваш контроллер кодом, управляющим состоянием между асинхронными методами. Вы могли даже сделать асинхронным в Вашем рабочем потоке, хотя обычно легче использовать синхронные методы, если они не поддерживают функцию, необходимо использовать. Конечно, все это зависит от обстоятельств, я могу думать о многих ситуациях, просто использование асинхронных методов было бы оптимальным маршрутом.
Определенно рассматривают NSOperationQueue, если Вы идете этим путем; это значительно упрощает создание нескольких рабочих потоков, и это также поддерживает приоритеты и зависимости между операциями. Прямо сейчас существуют некоторые проблемы с ним на 10,5, но я не услышал ни о каких проблемах о iPhone.
Убедитесь, что заголовки вашей таблицы находятся в разделе таблицы, затем используйте CSS для ее стилизации:
thead { display: table-header-group; }
вздох Этот возвращает воспоминания. На протяжении многих лет я боролся с печатью через браузер. Я наконец выбросил полотенце и теперь просто отправил пользователю PDF-файл.
Я (и мои клиенты) гораздо более довольны результатами.
Вы можете прочитать эту статью о страничных носителях и CSS. Это довольно хорошее чтение, и оно должно направить вас в правильном направлении.
Печать книги с помощью CSS: Boom!
Пример использования правил css разрыва страницы для таблицы.
@media print
{
table {page-break-after:always}
}
Здесь также ссылки w3c на страничные носители.