как отобразить таблицу с нулевыми строками в UITableView

Все ответы здесь кажутся правильным: полноценность блокировок должна заблокировать потоки от доступа к заблокированному коду одновременно. Однако в этом поле существует много тонкости, одна из которой - то, что заблокированные блоки кода автоматически отмечены как критические регионы Общеязыковой средой выполнения.

эффект кода, отмечаемого как очень важный, состоит в том, что, если весь регион не может быть полностью выполнен, время выполнения может полагать, что Ваше целое приложение Домен потенциально подвергается опасности и, поэтому, разгрузите его из памяти. К кавычке MSDN :

, Например, рассмотрите задачу, которая пытается выделить память при содержании блокировки. Если выделение памяти перестало работать, прерывание текущей задачи не достаточно для обеспечения устойчивости AppDomain, потому что могут быть другие задачи в домене, ожидающем той же блокировки. Если текущая задача завершается, другие задачи могли бы быть заведены в тупик.

Поэтому даже при том, что Ваше приложение является однопоточным, это может быть опасностью для Вас. Полагайте, что один метод в заблокированном блоке выдает исключение, которое в конечном счете не обработано в блоке. Даже если с исключением имеют дело, поскольку оно пузырится через стек вызовов, Ваш критический регион кода обычно не заканчивался. И кто знает, как CLR будет реагировать?

Для большего количества информации, читайте эта статья об опасностях Потока. Аварийное прекращение работы () .

10
задан Sathiya 29 September 2009 в 07:13
поделиться

2 ответа

Вы можете проверить пустой регистр, если ваш источник данных пуст, добавьте представление заполнителя поверх табличного представления. Если они не пусты, удалите представление заполнителя.

2
ответ дан 3 December 2019 в 14:53
поделиться

Обычный UITableView всегда будет отображать разделительные линии, даже если он пуст. Вы могли заметить, что если у вас есть список с одной или двумя строками, разделительные линии все еще видны. Это поведение по умолчанию, и его не следует отменять, если у вас нет действительно веской причины.

Я предполагаю, что вы видите только две разделительные линии, потому что ваши строки очень высокие?

Если вы делаете действительно необходимо удалить разделительные линии, а затем установить свойство separatorStyle в табличном представлении на UITableViewCellSeparatorStyleNone . Обратите внимание, что это повлияет на все строки. Поэтому, если вам все еще нужны разделители для существующих строк, вы должны нарисовать эти разделительные линии в своих собственных объектах UITableViewCell .

2
ответ дан 3 December 2019 в 14:53
поделиться