ios-conetworkingata: ¿cuál es la diferencia entre el seguimiento en memory y el seguimiento persistente completo?

El documento es un poco demasiado simple para que yo pueda entenderlo por completo

Por lo tanto, un controller tiene efectivamente tres modos de operación, determinados por si tiene un delegado y si se establece el nombre del file de caching.

Sin seguimiento: el delegado está configurado a cero. El controller simplemente proporciona acceso a los datos tal como estaban cuando se ejecutó la captura.

Solo seguimiento de memory: el delegado no es nulo y el nombre del caching de file se establece en nil. El controller supervisa los objects en su set de resultados y actualiza la sección y la información de pedidos en respuesta a los cambios relevantes.

Seguimiento persistente completo: el delegado y el nombre del caching de file no son nulos. El controller supervisa los objects en su set de resultados y actualiza la sección y la información de pedidos en respuesta a los cambios relevantes. El controller mantiene un caching persistente de los resultados de su cálculo.

eso es lo que dicen los documentos, entonces, ¿qué hace el 'caching persistente'? ¿Qué es 'el resultado de su cálculo'? ¿Es solo el caching una cuestión de performance?

De la documentation de NSFetchedResultsController:

Siempre que sea posible, un controller usa un caching para evitar la necesidad de repetir el trabajo realizado al configurar cualquier sección y orderar el contenido.

NSFetchResultsController es responsable de organizar los datos en secciones y orderarlos para su visualización por UITableView, que requieren cálculos sobre los datos. Después de cada cálculo, el controller almacena en caching los resultados de modo que si se vuelven a visualizar los mismos datos, el resultado en caching puede devolverse sin la necesidad de volver a realizar el cálculo.

Entonces, sí, el caching tiene como objective mejorar el performance al eliminar los cálculos networkingundantes.

El resultado de su cálculo es information about sections in the result set, and for the index. por lo que mantiene un seguimiento de cómo UITableView debería representar los datos que obtuvo. Y, sí, todo se trata del performance.