Domanda

Sto cercando di usare FSPathCopyObjectAsync e sto fallendo. Per ottenere la testa per il problema, ho cercato esempi di esso altrove e anche se stavo sperimentando il codice sorgente leggermente datato da Il tutorial di Matt lungo sul cacao è la mia ragazza , ho poi trovato un po 'più Elaborato esempio in Un progetto su GitHub, come categoria su NSFileManager . Dal momento che il mio progetto è in esecuzione sotto ARC, ho provato a portarlo e sono riuscito solo a metà di esso.

Nel suo Modulo corrente , i lavori di copia effettiva, tuttavia il metodo di callback MZCopyFSPathFileOperationStatusProc non viene mai chiamato. Quel metodo di callback è l'unico motivo per l'uso della copia asincrona, altrimenti si potrebbe anche eseguire una sincrona in background. Suppongo che la ragione per il callback non venga chiamata è che un oggetto è stato rilasciato in modo errato da Arc, ma potrebbe esserci qualcos'altro. Sto tenendo all'oggetto di ritorno del metodo copyItemAsyncAtPath:toPath:destName:options:statusChangeInterval:error:, in modo che non possa essere, giusto?

Chi può Spot L'errore e spiega perché questa categoria non sta generando callback? È arco? È qualcos'altro?

Molto obbligato. EP.

P.S. Per motivi di ridondanza, ecco il GIST: https://gist.github.com/6f3715753896ccf6fd35

È stato utile?

Soluzione

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top