Я читал много примеров кода, я знаю, что обычно вы хотите, чтобы код , который обновляет ваш пользовательский интерфейс , выполнялся в главном потоке.И xcode будет жаловаться во время выполнения, если я что-то упустил.Но только иногда.
Так как же на самом деле определяется код , который обновляет ваш пользовательский интерфейс ?Представляет ли предупреждение обновление пользовательского интерфейса?вызывая reloadData () для UITableView?Как насчет простой установки текста UILabel?Особенно с этими тремя, я видел и использовал это оба пути в моем приложении и не могу действительно понять правило.Тем более, что xcode позволяет мне избежать неприятностей с обоими ... иногда.Я думал, что это было случайно, на какой нити вы были.Но вы на самом деле «всегда» в главном потоке, если только вы не выполняете что-то вроде задачи, которая выполняется в фоновом потоке.
Таким образом, средство проверки основного потока фактически не позволяло мне «уйти» с использованиемreload () и изменение меток в моем viewController ложно.Просто я гарантированно был в главном потоке.
Я думал, что должен был внезапно обернуть каждую смену метки везде в dispatch.async.