Pregunta

Estoy buscando usar FSPathCopyObjectAsync y estoy fallando. Para obtener mi cabeza alrededor del problema, he estado buscando ejemplos de él en otros lugares y, aunque estaba experimentando con el código fuente ligeramente fechado de tutorial de Matt Long sobre el cacao es mi novia , luego encontré un ejemplo más elaborado en un proyecto en Github, como categoría en NSFileManager . Dado que mi proyecto se está ejecutando bajo el arco, lo intenté portarlo, y lo sucedió solo a la mitad de ella.

En su Formulario actual , la copia real funciona, pero el método de devolución de llamada MZCopyFSPathFileOperationStatusProc nunca se llama. Ese método de devolución de llamada es la única razón para usar la copia asíncrona, de lo contrario, se podría ejecutar un síncrono en el fondo. Supongo que el motivo de la devolución de llamada que no se está llamando es que algún objeto es liberado incorrectamente por el arco, pero podría haber algo más sucediendo. Aglíe el objeto de retorno del método copyItemAsyncAtPath:toPath:destName:options:statusChangeInterval:error:, por lo que no puede serlo, ¿verdad?

¿Quién puede Spot El error y explica por qué esta categoría no está generando ninguna devolución de llamada? Es arco? ¿Es otra cosa?

muy agradecido. EP.

P.s. Por razones de redundancia, aquí está la GIST: https://gist.github.com/6f3715753896cf6fd35

¿Fue útil?

Solución

Your delegate needs to be strongly referenced by something. NSFileManager will only hold a weak reference to it (as it should do), so if you don’t have a strong reference to it, your delegate will get released and the callbacks won’t be seen.

Have you considered using blocks for the callbacks? That would probably be preferable.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top