Git: file is missing

Quando si usare git su Xocde può capitare che qualcosa vada storto e dei file, magari semplicemente spostati da una cartella ad un altra, risultino mancanti.

È questo il caso di quando appare nella schermata del Commit un punto interrogativo a fianco ad un file e nell’editor di fianco il messaggio:

1
file is missing
file is missing

Ovviamente questo può accadere anche ad una cartella.

Per ovviare a questo fastidioso problema, che provoca anche dei relativi Warning in fase di compilazione, è sufficiente aprire il Terminale, posizionarsi nella cartella del progetto, e forzare un commit con questo comando:

1
git commit -a -m "Commit Message"
git commit -a -m "Commit Message"

A volte, se avete più Xocde installati, potrebbe essere necessario specificare dove si trova la versione che state usando:

1
sudo xcode-select --switch /Applications/Xcode\ 8/Xcode.app
sudo xcode-select --switch /Applications/Xcode\ 8/Xcode.app



EDIT:

Se invece il problema si verifica sotto forma id warning durante la compilazione, potrebbe essere sufficiente lanciare da Terminale il comando:

1
git add .
git add .

una volta posizionati nella cartella del progetto.

Dichiarare un block type per un completion handerl

In relazione all’articolo Creare un completion handler, si può precisare quanto illustrato qui:

La dichiarazione del block type è un modo per rendere più facilmente modificabile la signature del metodo, poiché nel primo caso basta cambiare la definizione del blocco, senza toccare il metodo.

1
2
3
4
typedef BOOL (^SomeBlockType)(id object, NSUInteger idx, BOOL *stop);
 
- (void)collectionToCheck:(SomeBlockType)checkerBlock;
- (void)singleItemToCheck:(SomeBlockType)checkerBlock;
typedef BOOL (^SomeBlockType)(id object, NSUInteger idx, BOOL *stop);

- (void)collectionToCheck:(SomeBlockType)checkerBlock;
- (void)singleItemToCheck:(SomeBlockType)checkerBlock;

versus:

1
2
- (void)collectionToCheck:(BOOL(^)(id object, NSUInteger idx, BOOL *stop)) checkerBlock;
- (void)singleItemToCheck:(BOOL(^)(id object, NSUInteger idx, BOOL *stop)) checkerBlock;
- (void)collectionToCheck:(BOOL(^)(id object, NSUInteger idx, BOOL *stop)) checkerBlock;
- (void)singleItemToCheck:(BOOL(^)(id object, NSUInteger idx, BOOL *stop)) checkerBlock;