Sempre que eu tento fazer download de um grande por trás do arquivo UIScrollView
, MPMapView
ou algo assim, o processo de download fica parado assim que a tela de toque do iPhone. Felizmente, uma postagem incrível de Jörn sugere uma opção alternativa, usando NSRunLoopCommonModes
para conexão.
Isso me permite ver os detalhes dos dois modos, NSDefaultRunLoopMode e NSRunLoopCommonModes, mas o documento da apple não explica gentilmente, além de dizer
NSDefaultRunLoopMode
O modo para lidar com fontes de entrada diferentes de objetos NSConnection. Este é o modo de loop de execução mais comumente usado.
NSRunLoopCommonModes
Os objetos adicionados a um loop de execução usando este valor como o modo são monitorados por todos os modos de loop de execução que foram declarados como um membro do conjunto de modos "comuns"; consulte a descrição de CFRunLoopAddCommonMode para obter detalhes.
CFRunLoopAddCommonMode
Fontes, temporizadores e observadores são registrados em um ou mais modos de loop de execução e só são executados quando o loop de execução está sendo executado em um desses modos. Os modos comuns são um conjunto de modos de loop de execução para os quais você pode definir um conjunto de fontes, temporizadores e observadores compartilhados por esses modos. Em vez de registrar uma fonte, por exemplo, para cada modo de loop de execução específico, você pode registrá-lo uma vez no pseudo-modo comum do loop de execução e será registrado automaticamente em cada modo de loop de execução no modo comum definido. Da mesma forma, quando um modo é adicionado ao conjunto de modos comuns, quaisquer fontes, temporizadores ou observadores já registrados no pseudo-modo comum são adicionados ao modo comum recém-adicionado.
Alguém pode explicar os dois em linguagem humana?
fonte
NSRunLoopCommonModes
permite evento temporizador enquanto rola para dentroUIScrollView
.NSDefaultRunLoopMode
evitar cronômetro durante a rolagem.