2015-03-29 21 views
17

Precedentemente con il codice obiettivo-c, ho potuto "Analizzare" - CMD + Shift + B e Xcode mi avvisavano di tutti i tipi di irregolarità da parte mia.Non è possibile utilizzare "Analizza" con swift?

Sembra che con Swift, non posso sbagliare! Nessun avvertimento di alcun tipo! Ma chiaramente c'è una perdita di memoria nel mio codice.

Esiste qualche impostazione che devo abilitare affinché Swift possa analizzare correttamente il mio codice? (Sono consapevole che dovrei usare il profiler e testare su un dispositivo reale, cosa che faccio, ma mi chiedo perché "Analizza" non fa nulla.

+0

Nota che Swift è abbastanza recente, in modo che l'analizzatore statico molto probabilmente non lo sa * come * analizzare il codice. – MaddTheSane

+0

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. –

+1

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

risposta

11

Purtroppo no. Anche molte versioni successive, l'ultima versione di XCode (6.4) non è ancora possibile eseguire l'analisi Swift L'opzione 'Analizza' funziona solo per i file Objective C. Nel tuo progetto

Speriamo che la prossima versione lo abbia, insieme alle capacità di refactoring che sono ancora limitate all'Obiettivo codice C

+4

Analizzare l'acciaio non funziona e il suo 2017 –

+1

Xcode 9.2 non analizzare per Swift :) – iTux

0

aggiornamento:.

Come sempre più persone stanno giù il voto mio post, solo piccolo aggiornamento dal mio lato. Sembra infatti che Apple abbia semplicemente permesso di premere "Analizza" ma sullo sfondo non fa nulla (stato per 2016.04.21, anche se per il momento non sto lavorando su iOS e probabilmente non ho l'ultima versione di Xcode).

sotto il mio post originale:


Proprio per i prossimi lettori di questo articolo. In questo momento Xcode 7 è già in grado di analizzare anche i progetti Swift. Tuttavia, il refactoring non funziona ancora.

BR, Darek

+15

Il pulsante di analisi è abilitato in Xcode 7 * ma * non analizzerà alcun codice Swift. – kennytm

3

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

Problemi correlati