@ La risposta di JAL è corretta, ma forse troppo specifica.
sacco di API preso rinominato a Swift 3. tipi più Foundation (NSUserDefaults
tra di loro) hanno entrambi perso il loro prefisso NS
e avevano i loro metodi renamed per riflettere Swift 3 API Guidelines. Foundation sostituisce anche alcune delle classi di tipi di dati di base (NSURL
, NSIndexPath
, NSDate
, ecc.) Con Swift-native value types (URL
, IndexPath
, Date
, ecc.). La ridenominazione del metodo si applica anche a tutte le altre API Cocoa/Cocoa Touch che utilizzi nella tua app.
Affrontare questi problemi uno per uno, riga dopo riga, è un modo sicuro per la follia. La prima cosa che fai quando sposti un progetto in Swift 3 dovrebbe essere quello di scegliere Modifica> Converti> in Sintassi Swift attuale dalla barra dei menu. Ciò applicherà tutte le modifiche contemporaneamente, inclusi i casi in cui una riga di codice è influenzata da più modifiche (e quindi indirizzarle individualmente potrebbe non portarti dove pensi di andare).
* Inserisco "sostituisce" tra virgolette perché le corrispondenti classi NS
sono ancora disponibili per i casi in cui potrebbero essere necessarie, ma qualsiasi API che le utilizza fa riferimento invece ai nuovi tipi di valore: ad es. tableView(_:cellForRowAt:)
ora prende uno IndexPath
, non uno NSIndexPath
.
Sembra che sarò have some fun riscrittura del codice passato. –
@ JAL - una volta rese tali modifiche NSUserDefault conformi a Swift 3/ios10/Xcode 8, i valori correnti di tutti i nostri NSUserDefaults persistono ?? – Joe
@Joe Sì, tutti i dati continueranno a persistere. Queste sono solo modifiche al nome della classe e della funzione. – JAL