a questo momento (8.3.x Xcode) analisi statica del codice salta il codice Swift. Alcuni avvisi Swift coprono alcuni dei problemi rilevati in precedenza dall'analizzatore.
Anche il prossimo Xcode 9 (presentato a WWDC 2017) non annuncia alcun cambiamento in questa direzione.
La maggior parte dei problemi rilevati dall'analizzatore di codice in Obj-C, sono per lo più impediti dalla lingua Swift effettiva. I flussi di programma che portano a potenziali arresti anomali (l'accesso ai puntatori nulli, l'eliminazione dei puntatori penzolanti o l'accesso ai blocchi di memoria rilasciati) sono difficilmente possibili in Swift. La digitazione rapida, l'uso intensivo degli optionals, il requisito di coprire completamente i protocolli e la sostituzione delle maiuscole/minuscole, ecc. Rimuovono un altro gruppo di problemi precedentemente rilevati dall'analizzatore.
Un analizzatore di codice Swift dovrà passare a un altro livello - analizzando il programma LOGIC, che è un miliardo di volte più difficile e teoricamente impossibile da eseguire completamente.
Così - anche se sono abbastanza entusiasta di pensare a un futuro Xcode Analyzer, non voglio trattenere il respiro in attesa che
fonte
2017-06-25 16:31:06
Nota che Swift è abbastanza recente, in modo che l'analizzatore statico molto probabilmente non lo sa * come * analizzare il codice. – MaddTheSane
Sono d'accordo: probabilmente (Clang) non sa ancora come analizzare il codice Swift. Ma sarebbe comunque bello se l'analizzatore generasse un avvertimento di qualche tipo che indica che non è disponibile. * Attualmente * nel mio progetto Swift, non so se l'analizzatore non è in esecuzione, o se ho scritto codice fantastico la prima volta. –
Per essere onesti, penso che la maggior parte delle cose che Analizza * fa per Objective-C, il compilatore Swift lo faccia già durante la normale compilazione. La cosa bella di Swift è che è più semplice di C o Obj-C, ha tipi forti e la gestione della memoria è stata nascosta agli interni, quindi l'analisi è molto più semplice da fare. – Sulthan