Devo dare ai miei nomi di classe Swift un prefisso di tre lettere come raccomandato da Objective-C Conventions: Class Names Must Be Unique Across an Entire App?Swift: Classe prefisso necessario?
risposta
No, you do not need class prefixes in Swift, perché le classi sono assegnate ai nomi del modulo in cui vivono.
Se è necessario disambiguare tra (per esempio) un Array
da Swift e un Array
classe/struttura che avete dichiarato nella vostra applicazione, è possibile farlo digitando come Swift.Array
o un MyProject.Array
. Che funziona con le estensioni così:
extension Swift.Array {
...
}
extension MyProject.Array {
...
}
Riporta questo se si importa nell'obiettivo c? – Jeef
@Jeef [Questa risposta StackOverflow] (http://stackoverflow.com/a/26148391/2067021) sembra indicare che possono esserci conflitti di denominazione quando le classi vengono importate in Objective-C. – user2067021
Dato che si scelgono i nomi delle classi all'esportazione con il tag '@ objc', penso che dovresti fare entrambi, quindi in Swift' SimpleAlert' diventa 'DRSimpleAlert' –
No, il prefisso non è sicuramente neeeded.
Supponiamo che l'app abbia il nome e che sia necessario dichiarare il numero personalizzato UICollectionViewController
.
È non è necessario come prefisso e sottoclasse in questo modo:
class MAUICollectionViewController: UICollectionViewController {}
fare in questo modo:
class UICollectionViewController {} //no error "invalid redeclaration o..."
Perché?. Perché ciò che hai dichiarato viene dichiarato in modulo corrente, che è il tuo attuale target. E UICollectionViewController
da UIKit
è dichiarato nel modulo UIKit
.
Come si utilizza nel modulo corrente?
var customController = UICollectionViewController() //your custom class
var uikitController = UIKit.UICollectionViewController() //class from UIKit
Come distinguerli da un altro modulo?
var customController = MyApp.UICollectionViewController() //your custom class
var uikitController = UIKit.UICollectionViewController() //class from UIKit
- 1. Nomi JNDI - È necessario il prefisso "jdbc /"?
- 2. Funzioni di estensione prefisso
- 3. Prefisso chiave di sottolineatura Swift istanza?
- 4. Membri di classe con prefisso (_)
- 5. È necessario il prefisso di una funzione con (void)
- 6. Classe anonima in swift
- 7. Classe UIView personalizzata - Swift
- 8. Classe Swift usando la classe Objective-C usando la classe Swift
- 9. Errore del compilatore "Ambiguo uso del prefisso" con Swift 3
- 10. Inizializzatore di classe in Swift?
- 11. Instanciate Classe FBLoginView in swift
- 12. jQuery - Ottieni una classe di elementi basata su un prefisso
- 13. Come modificare il prefisso di classe in Xcode 4?
- 14. Prefisso classi generate JAXB
- 15. statico vs classe come variabile di classe/metodo (Swift)
- 16. prefisso http urlfield django
- 17. "prefisso" e "come" gettare
- 18. File Swift Costanti - classe o struct?
- 19. Delegato Swift per una classe generica
- 20. classe di sola vincoli generici a Swift
- 21. Swift protocollo annidato in una classe
- 22. Xcode non riconoscerà una nuova classe Swift
- 23. Eredita da una classe Swift nell'obiettivo C
- 24. Protocollo Swift delegato per classe generica
- 25. Swift: classe Instantiate (AnyClass) conforme al protocollo
- 26. La classe non ha inizializzatori: Swift Errore
- 27. Come utilizzare AnyClass in Swift Classe generica
- 28. E 'necessario considerare cadere l'indice esistenti in quanto è un prefisso dell'indice consigliato
- 29. Su un multicore x86, è necessario un BLOCCO come prefisso per XCHG?
- 30. Importazione circolare Swift/ObjC
Ora Apple ha anche deciso di eliminare il prefisso 'NS' per classi come' NSNotificationCenter' se usato in Swift. Tuttavia, mantengono ancora il prefisso per 'NSObject', motivo per cui ci stiamo divertendo così tanto qui. –